Combinaison de la touche ctrl + C [Résolu]

Signaler
Messages postés
379
Date d'inscription
mardi 6 décembre 2005
Statut
Membre
Dernière intervention
8 octobre 2008
-
Messages postés
1023
Date d'inscription
dimanche 1 août 2004
Statut
Membre
Dernière intervention
17 août 2008
-
salut,

je cherche à faire des évènements claviers avec KeyDown et pour une seule touche enfoncée cela fonctionne mais je ne parviens pas a faire un évènement de touche combiné  du genre : " Ctrl+D "

procedure Tajouter.BtnImgKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin

   if (Key = VK_CONTROL)   then
        //ma procédure
end;


 

5 réponses

Messages postés
1023
Date d'inscription
dimanche 1 août 2004
Statut
Membre
Dernière intervention
17 août 2008
1
Salut,

Pur tester l'état des touches spéciales (Ctrl, Maj, Alt) tu peux utiliser le paramètre Shift transmis par la procédure.

Voila un bout de code qui détecte la combinaison Ctrl-C :

procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  if (ssCtrl in Shift) and (Key in [Ord('c'), Ord('C')]) then
    ShowMessage('Control - C');
end;
<hr size ="2" width="100%" />
Messages postés
1154
Date d'inscription
samedi 14 août 2004
Statut
Membre
Dernière intervention
5 avril 2012
2
Bonsoir

Il me semble qu'il n'est pas nécessaire de distinguer les majuscules des minuscules. Dans ce cas, une simple comparaison avec la lettre en majuscule souhaitée suffit. Un doute ? Faites le test

procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);

begin
  if (ssCtrl in Shift) and (Key = Ord('C')) then
    ShowMessage('Control - C');
end;

Cordialement.
<hr />"L'imagination est plus importante que le savoir." Albert Einstein
Messages postés
379
Date d'inscription
mardi 6 décembre 2005
Statut
Membre
Dernière intervention
8 octobre 2008

salut florenth et WhiteHippo,

   Je tiens à vous remercier pour m'avoir répondu assez rapidement, le code fonctionne à merveille.

WhiteHippo a raison il n'y a pas besoin de distinction entre majuscule et minuscule nécessaire.

Encore merci et bonne soirée !
Messages postés
1023
Date d'inscription
dimanche 1 août 2004
Statut
Membre
Dernière intervention
17 août 2008
1
Ah oui, tout à fait WhiteHippo.
Il me semblait qu'il y avait une différence suivant l'état de CapsLock mais en fait non.
Tant mieux alors, ça simplifie le code.

Merci à toi pour cet éclairage !
Messages postés
1023
Date d'inscription
dimanche 1 août 2004
Statut
Membre
Dernière intervention
17 août 2008
1
Croisement de messages on dirait.
@gabs77: Content que ton problème soir résolu !

PS: pourquoi choisir des pseudos si tordus ? Bon le "77" c'est le département j'imagine. Et alors "gabs" c'est quoi ? (bon ok, à coté de Francky23012301 le tien est quand même plus simple )