begin process at 2012 02 10 13:03:46
  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 Delphi 6 sous windows 7 [ par Toidil ] Toidil Bonjour, J'ai constaté que pendant la conception, l'usage du racourci des touches F9 : Exécuter. ctrl + F9 : Compiler. Actualiser/Refresh IconCache [ par AgentAmine ] Salut tt, je cherche un code pour actualiser le IconCache, malheureusement, il n'existe pas un API, mé j'ai trouve un code que me permet de faire ca, Bouger le Panel avec keypress [ par sarssor ] Salut je peut bouger Panel avec Les touches fléchées mais quand je mets d'autres composants sur la Form, le code sa ne marche pas ! Et Je ne comprend TShiftState de FormKeyDown de la form [ par MohInfo ] Bonsoir à tous lors de l'utilisation de l'évènement FormKeyDown de ma form (FormStyle = fsMDIForm)je veux faire un raccourci clavier pour chaque bout Désactiver les combinaisons de touches dans Win XP [ par badyinfo ] Bonjour à tous, je souhaiterai que lors de l'éxécution de mon application, plusieurs combinaisons du clavier se désactivent : Ctrl + Alt + Supp Ctrl Desactiver le CTRL+V d'un edit dans une MDIChild [ par drexl ] Bonjour a tous, Je dois développer une application utilisant des form mdichild. Je dois faire en sorte que mes LabelEdit soient formatés de manière a Detecter touches du clavier [ par sebrs1 ] salutj'ai un ptit probleme en delphi en esperant que vous pourrez m'aidersavez vous comment détécter les touche du claviers appuyées depuis n'importe 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


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
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 : 1,544 sec (3)

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