begin process at 2010 02 09 22:33:01
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive Delphi

 > 

Archives

 > 

Divers

 > 

Tjrs on keyPress les touches F?


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Tjrs on keyPress les touches F?

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ée 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...

Comparez les prix

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
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

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,265 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales