oui, VK_RETURN correspond a la touche "Entrée"
Par contre, viiz, pour que le bouton recoive onKeyDown, il faut qu'il ait le focus, non ?
une facon de contourner le pb serait de mettre la propriété "KeyPreview" de la Form a "True" (tout les evenements clavier sont d'abord déclencher au niveau de la form) et de mettre le code dans le onKeyDown de la form et non du bouton.
Pour tester ca, Juju, ouvre un nouveau projet, pose tes 2 champs TEdit et 4 TButton (pas la peine de les renommer) et dans le l'évenement onClick des boutons, fait un ShowMessage indiquant sur quel bouton tu te trouves.
Par ex:
Code :
- procedure TForm1.Button1Click(Sender: TObject);
- begin
- showmessage('Button 1');
- end;
- procedure TForm1.Button2Click(Sender: TObject);
- begin
- showmessage('Button 2');
- end;
- procedure TForm1.Button3Click(Sender: TObject);
- begin
- showmessage('Button 3');
- end;
- procedure TForm1.Button4Click(Sender: TObject);
- begin
- showmessage('Button 4');
- end;
|
Puis dans le OnKeyDown de la form, gere les différentes "key" comme viiz a proposé:
Code :
- procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
- Shift: TShiftState);
- begin
- if Key = VK_MENU then
- Button1Click(nil);
- if Key = VK_SHIFT then
- Button2Click(nil);
- if Key = VK_CONTROL then
- Button3Click(nil);
- if Key = VK_RETURN then
- Button4Click(nil);
- end;
|
Donc de cette facon, tu vas déclencher la fonction associée a l'évenement OnClick du bouton en fonction de la touche saisie
Dans ce cas, la touche Alt affichera "Button 1", la touche Shift affichera "Button 2", la touche Control affichera "Button 3" et la touche Entrée affichera "Button 4".
---------------
www.alliancefrancophone.org ... Home is where the heart is