Bonjour,
Je suis sous W11 avec Delphi 6 Personal Edition.
J'ai créé un contrôle dérive de TScrollBox dans lequel j'ai placé un TImage. Le tout est créé dynamiquement, par programme.
Ca marche très bien.
Mais maintenant, je veux récupérer les touches directionnelles (avec/sans SHIFT) frappées sur ce TImage (qui remplit tout l'espace de la ScrollBox.
Je récupère le clic sans problème, mais j'ai compris qu'il n'y a pas de OnKeyDown event pour un TImage car ce dernier ne descend pas de TWinControl.
Alors, j'ai essayé d'intercepter OnKeyDown sur la ScrollBox. Rien n'est intercepté pour les touches du clavier, seul le clic gauche déclenche cet évènement.
Alors, j'ai vu qu'il y a une propriété KeyPreview pour la Form qui contient ma ScrollBox.
Or, pour accéder la Form, je ne connais que son handle, je n'ai pas accès à l'objet proprement-dit.
Question: comment activer KeyPreview sur une TForm par son handle ?
Question subsidiaire:
serait-ce possible d'intercepter un message Windows indiquant la frappe d'une des touches directionnelles, éventuellement avec les attributs TShiftState ?
L'ensemble du code (création et gestion de la TScrollBox et du TImage) est placé dans une DLL, ainsi que devra l'être le code d'interception des touches.






Répondre avec citation




)



Partager