Combinaison de la touche ctrl + C

Résolu
gabs77 Messages postés 379 Date d'inscription mardi 6 décembre 2005 Statut Membre Dernière intervention 8 octobre 2008 - 27 avril 2007 à 18:31
florenth Messages postés 1023 Date d'inscription dimanche 1 août 2004 Statut Membre Dernière intervention 17 août 2008 - 27 avril 2007 à 20:34
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

florenth Messages postés 1023 Date d'inscription dimanche 1 août 2004 Statut Membre Dernière intervention 17 août 2008 3
27 avril 2007 à 19:37
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%" />
1
WhiteHippo Messages postés 1154 Date d'inscription samedi 14 août 2004 Statut Membre Dernière intervention 5 avril 2012 3
27 avril 2007 à 20:07
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
1
gabs77 Messages postés 379 Date d'inscription mardi 6 décembre 2005 Statut Membre Dernière intervention 8 octobre 2008
27 avril 2007 à 20:30
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 !
0
florenth Messages postés 1023 Date d'inscription dimanche 1 août 2004 Statut Membre Dernière intervention 17 août 2008 3
27 avril 2007 à 20:31
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 !
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
florenth Messages postés 1023 Date d'inscription dimanche 1 août 2004 Statut Membre Dernière intervention 17 août 2008 3
27 avril 2007 à 20:34
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 )
0
Rejoignez-nous