Le forum (ô combien francophone) des utilisateurs de Powerbuilder.
Bonjour,
j'ai eu besoin de gérer la touche suppr. dans une listbox (pour envoyer un event à moi qui va demander confirmation avant de supprimer la ligne de la listbox).
J'ai eu l'idée de tester un keydown(keydelete!) dans l'évènement other de la listbox. à l'exécution, ça vire l'appli et PB sans plus de commentaire, même pas le temps de dire qu'il s'est planté le pauvret...
Précisions : version de PB 10.5 build 6684.
Il faut faire autrment pour gérer la touche suppr. dans une listbox ?
merci d'avance.
Dernière modification par frichmout (20-10-2008 15:41:22)
Hors ligne
Ce n'est pas du tout un bug, c'est même d'ailleurs tout à fait prévisible comme comportement...
A moins d'avoir d'excellentes raisons, ne jamais rien coder dans l'event other! Et encore, en limitant un max au cas qui nous intéresse, sinon, tout pète...
Bon, pour ton problème, il doit y avoir un event qui marche pour une listbox... As-tu essayé de définir un user event ayant l'ID pbm_keydown?
Je pense qu'il faut vraiment commencer par là sinon...
Hors ligne
tu peux créer un événement ue_key mappé sur pbm_dwnkey dans lequel tu codes :
If key = KeyDelete! Then // ton traitement End If
Hors ligne
j'ai fait ce que vous m'avez dit. créé un user event dans la listbox, mappé sur pbm_dwnkey (essayé aussi pbm_keydown d'ailleurs)
et dans l'évènement j'ai juste écrit st_1.text = string(key)
le pauvre st_1 reste à "none", quelque soit la touche sur laquelle j'appuie...
Pourtant, votre explication m'a en effet rappelé quelque chose...on devrait coder tous les jours !!!
Hors ligne
Bonjour,
C'est normal, la syntaxe que tu utilises n'est pas supportée (keycode key est un type enuméré), la syntaxe doit être de la forme :
IF key = KeyA! THEN st_1.text = 'A' IF key = KeyB! THEN st_1.text = 'B' //IF key = KeyDelete! THEN ....
Pour un control windows l'événement est pbm_keydown, pbm_dwnkey concerne la gestion du clavier pour une datawindow.
En ligne
Merci beaucoup; ça fonctionne !
Hors ligne