Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : Tjrs on keyPress les touches F? [ Archives / Divers ] (MasterJ)

lundi 29 juillet 2002 à 22:21:28 | Tjrs on keyPress les touches F?

MasterJ

Comment peut on trapper une touche F9 par exemple. J'essaie

if (key=char(VK_F9)) then do something...;

sans succes

aussi pourquoi dans l'aide de delphi 6 enterprise ils parlent de constante sous la forme KEY_A, KEY_B et pourtant meme en ajoutant l'unit dans les uses ils ne les reconnaient pas..

merci

E_____P
Enjoy Programmation
Jeff

lundi 29 juillet 2002 à 22:34:57 | Re : Tjrs on keyPress les touches F?

Nono40

Car ces touches ne sont accessibles par le OnKeyPressed. Il faut utiliser le OnKeyDown :

procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
If Key=VK_F9 Then ShowMessage('F9');
end;

Il faut vérifier que le KeyPreview de la fiche est bien à True pour que toutes les touches passent d'abord par la fiche avant les contrôles.

Pour les VK_A à VK_Z bien qu'elles soient définies dans l'aide, les constante n'existent pas dans delphi. Mais elles correspondes à leur code Ascii. Donc tu peux comparer Key avec Word('A') et Word('Z').

Attention : On key donc renvoie toujours le code de la touche appuyée indépendemment de l'état du capslock ou des ctrl-alt. C'est au programme de le gérer en utilisant la valeur de Shift de l'évènnement. ( 'a' ne sera jamais envoyé, ce sera toujours 'A' de même Shift-F9 donne toujours le code F9 avec ssShit dans Shift ).

Il faut noter aussi que la fenêtre doit être active pour que le OnKeyDown fonctionne, si une fiche est en arrière plan alors ce n'est pas possible. Si tu souhaite avoir des raccourcis utilisiables de n'importe quel endroit de l'appli, il faut utiliser les messages de Windows ou le composant TRaccourci que j'ai publié sur ce site il y a quelques semaines.


--- Nono du Moulin ---


-------------------------------
Réponse au message :
-------------------------------

Comment peut on trapper une touche F9 par exemple. J'essaie

if (key=char(VK_F9)) then do something...;

sans succes

aussi pourquoi dans l'aide de delphi 6 enterprise ils parlent de constante sous la forme KEY_A, KEY_B et pourtant meme en ajoutant l'unit dans les uses ils ne les reconnaient pas..

merci

E_____P
Enjoy Programmation
Jeff

lundi 29 juillet 2002 à 22:41:00 | Re : Tjrs on keyPress les touches F?

MasterJ

Juste besoin d'une petite précision... dans ce cas le sender sera quoi??? Le controle ayant le focus??? Ou le formulaire lui-meme??

merci bcp pour l'aide Nono, c'est tjrs incroyablement complet.

E_____P
Enjoy Programmation
Jeff


-------------------------------
Réponse au message :
-------------------------------

Car ces touches ne sont accessibles par le OnKeyPressed. Il faut utiliser le OnKeyDown :

procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
If Key=VK_F9 Then ShowMessage('F9');
end;

Il faut vérifier que le KeyPreview de la fiche est bien à True pour que toutes les touches passent d'abord par la fiche avant les contrôles.

Pour les VK_A à VK_Z bien qu'elles soient définies dans l'aide, les constante n'existent pas dans delphi. Mais elles correspondes à leur code Ascii. Donc tu peux comparer Key avec Word('A') et Word('Z').

Attention : On key donc renvoie toujours le code de la touche appuyée indépendemment de l'état du capslock ou des ctrl-alt. C'est au programme de le gérer en utilisant la valeur de Shift de l'évènnement. ( 'a' ne sera jamais envoyé, ce sera toujours 'A' de même Shift-F9 donne toujours le code F9 avec ssShit dans Shift ).

Il faut noter aussi que la fenêtre doit être active pour que le OnKeyDown fonctionne, si une fiche est en arrière plan alors ce n'est pas possible. Si tu souhaite avoir des raccourcis utilisiables de n'importe quel endroit de l'appli, il faut utiliser les messages de Windows ou le composant TRaccourci que j'ai publié sur ce site il y a quelques semaines.


--- Nono du Moulin ---


-------------------------------
Réponse au message :
-------------------------------

Comment peut on trapper une touche F9 par exemple. J'essaie

if (key=char(VK_F9)) then do something...;

sans succes

aussi pourquoi dans l'aide de delphi 6 enterprise ils parlent de constante sous la forme KEY_A, KEY_B et pourtant meme en ajoutant l'unit dans les uses ils ne les reconnaient pas..

merci

E_____P
Enjoy Programmation
Jeff


lundi 29 juillet 2002 à 22:46:14 | Re : Tjrs on keyPress les touches F?

Nono40

Dans ce cas le Sender est l'adresse de la fiche ( car c'est sur elle qu'est défini l'évènement ).

Mais tu peux connaitre le contrôle actif au moment de l'appui par Form1.ActiveControl. Par exemple :
procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
If Key=VK_F9 Then ShowMessage('F9:'+Form1.ActiveControl.Name);
end;
Form1.ActiveControl est utilisable comme Sender.

--- Nono du Moulin ---


-------------------------------
Réponse au message :
-------------------------------

Juste besoin d'une petite précision... dans ce cas le sender sera quoi??? Le controle ayant le focus??? Ou le formulaire lui-meme??

merci bcp pour l'aide Nono, c'est tjrs incroyablement complet.

E_____P
Enjoy Programmation
Jeff


-------------------------------
Réponse au message :
-------------------------------

Car ces touches ne sont accessibles par le OnKeyPressed. Il faut utiliser le OnKeyDown :

procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
If Key=VK_F9 Then ShowMessage('F9');
end;

Il faut vérifier que le KeyPreview de la fiche est bien à True pour que toutes les touches passent d'abord par la fiche avant les contrôles.

Pour les VK_A à VK_Z bien qu'elles soient définies dans l'aide, les constante n'existent pas dans delphi. Mais elles correspondes à leur code Ascii. Donc tu peux comparer Key avec Word('A') et Word('Z').

Attention : On key donc renvoie toujours le code de la touche appuyée indépendemment de l'état du capslock ou des ctrl-alt. C'est au programme de le gérer en utilisant la valeur de Shift de l'évènnement. ( 'a' ne sera jamais envoyé, ce sera toujours 'A' de même Shift-F9 donne toujours le code F9 avec ssShit dans Shift ).

Il faut noter aussi que la fenêtre doit être active pour que le OnKeyDown fonctionne, si une fiche est en arrière plan alors ce n'est pas possible. Si tu souhaite avoir des raccourcis utilisiables de n'importe quel endroit de l'appli, il faut utiliser les messages de Windows ou le composant TRaccourci que j'ai publié sur ce site il y a quelques semaines.


--- Nono du Moulin ---


-------------------------------
Réponse au message :
-------------------------------

Comment peut on trapper une touche F9 par exemple. J'essaie

if (key=char(VK_F9)) then do something...;

sans succes

aussi pourquoi dans l'aide de delphi 6 enterprise ils parlent de constante sous la forme KEY_A, KEY_B et pourtant meme en ajoutant l'unit dans les uses ils ne les reconnaient pas..

merci

E_____P
Enjoy Programmation
Jeff





Cette discussion est classé dans : key, touches, keypress, tjrs, f9


Répondre à ce message

Sujets en rapport avec ce message

Probleme avec les touches [ par g0belin ] Voila j'ai un probleme...Je voudrait que quand la touche 38 (touche du haut) est enfoncee ou appuyer que la variable direction soit 'h'--------------- Key codes... [ par ELCouz ] Bonjour,jaimerais savoir si qqn connais un site ou on peu voir tout les codes KEY de F1 a la touche standby etc,,,bref les codes a placer dans la sent Simulation de touches [ par Hardouz ] Pour simuler une touche du clavier en ecrie KeyBd_Event(VK_Touche,0,0,0); //enfoncéKeyBd_Event(VK_Touche,0,1,0);  //relacherquelq'un peut m'éxpliquer N’autorise aucune touche, ds le Combobox [ par 810mcu ] Y a-t-il un procéder qui peut Empêcher la saisie de n'importe quel touche du clavier dans un Combobox, <p class="MsoNormal" style="MARGIN: Vitesse des touches [ par sisi231 ] Bonjour !Je souhaiterais pouvoir modifier momentanément la vitesse de répétition des touches gauche et droite (pour un jeu de voiture), getkeystate ét Procedure KeyPress dans un composant dérivé de TWinControl [ par Francky23012301 ] Salut à tous,Je suis entrain de faire un composant dérivé de TWinControl. Tout va bien sauf que j'essaye d'utiliser la procedure KeyPress : je ne sais touches ctrl+c et ctrl+v ??? [ par PhilLU ] Bonjour,Alors que j'utilise Delphi 7 pro (licence officielle) depuis sa sortie, j'ai subitement un problème:Les touches de raccourci utilisées dans l' ^ en delphi [ par dunith ] bonjour j'ai dans un code:  assoc : PAssocRecord; begin   New(assoc);  assoc^.Key := Key;  assoc^.Value := Value; que signifie <f réatribuer les touches de Fonctions [ par stender ] Bonjour,Bon j'ai cherché un peu partout sur le net et dans différents forum et nul part j'ai trouvé d'indice !. Alors je viens demander de l'aide j'ai


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :

Comparez les prix Nouvelle version

Photothèque Nouveau !



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 1,607 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.