Bonjour !
Je suis en train de m'arracher les cheveux pour essayer de gérer les actions du clavier dans un dialogue non modal descendant de tDialog. Ce que j'appelle les actions du clavier, c'est Enter pour faire OK, Escape pour annuler et la tabulation pour passer d'un contrôle à l'autre.
J'exécute pourtant bien la méthode EnableKBHandler dans le constructeur Init de tDialog.
Je me suis déjà tiré d'affaire dans d'autres circonstances, c'est-à-dire dans un dialogue de statut, en créant une méthode qui parcourt la file d'attente des messages. Cette méthode était exécutée par la fenêtre parent du dialogue à chaque action :
Mais dans le cas présent, la fenêtre parent du dialogue n'effectue aucune action et donc je ne peux pas reprendre la même technique.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 Procedure tDialogueStatut.FileMessages; Var Msg : tMsg; Begin while PeekMessage(Msg,0,0,0,pm_Remove) do if not IsDialogMessage(hWindow,Msg) then begin TranslateMessage(Msg); DispatchMessage(Msg); end; End;
Quelqu'un aurait-il une petite idée ?
P.S. La question étant spécifique à la bibliothèque OWL du Pascal Objet, je ne l'ai pas posée sur le forum Développement Windows.
Partager