Utilisation d'une combinaison de touches
Bonjour à tous.:P
L'exemple suivant montre comment utiliser une combinaison de touches de clavier 'Ctrl+X' (p.ex), de deux codes
'FormKeyDown' et 'Button1KeyDown' qui s'exécutent exclusivement l'un de l'autre selon la valeur 'KeyPreview'.
1/ si KeyPreview=True, le code suivant s'exécute:
Code:
1 2 3 4 5 6 7 8 9 10 11
| procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); //relatif à une Forme.
begin
if (Shift = [ssCtrl]) then
begin
Case key of
Ord('A'): ShowMessage ('AForm'); //KeyPreview=True.
Ord('B'): ShowMessage ('BForm');
Ord('C'): ShowMessage ('CForm');
end;
end;
end; |
2/ si KeyPreview=False, le code suivant s'exécute:
Code:
1 2 3 4 5 6 7 8 9 10 11
| procedure TForm1.Button1KeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);// relatif à un Boutton.
begin
if (Shift = [ssCtrl]) then
begin
Case key of
Ord('A'): ShowMessage ('AButton'); //KeyPreview=False.
Ord('B'): ShowMessage ('BButton');
Ord('C'): ShowMessage ('CButton');
end;
end;
end; |
On peut utiliser un 'Button2' pour modifier l'état de 'KeyPreview':
Code:
1 2 3 4 5 6 7 8
| procedure TForm1.Button2Click(Sender: TObject);
begin
if form1.KeyPreview=true then
form1.KeyPreview:=false
else
form1.KeyPreview:=true;
button1.SetFocus ;
end; |
merci à tous. 8-)