IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Delphi Discussion :

Les touches Fonction F1 -> F12


Sujet :

Delphi

  1. #1
    Futur Membre du Club
    Inscrit en
    Janvier 2006
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 5
    Points : 6
    Points
    6
    Par défaut Les touches Fonction F1 -> F12
    Bonjours;
    Je voulais développer un application qui en pressant les touches Fonction (F1->f12) exécute quelque instruction ;
    J’ai donc voulu intercepter le code ASCII des touches fonction du clavier (F1->F12) en utilisant la procédure Keypress
    Ord (Key) ;
    Malheureusement le var Key ne retourne aucune valeur !
    Y aurait il d’autre moyen de capturer ces touches Fonction ?
    Merci de votre aide !

  2. #2
    Expert éminent sénior

    Avatar de sjrd
    Homme Profil pro
    Directeur de projet
    Inscrit en
    Juin 2004
    Messages
    4 517
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : Suisse

    Informations professionnelles :
    Activité : Directeur de projet
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2004
    Messages : 4 517
    Points : 10 154
    Points
    10 154
    Par défaut
    Il faut utiliser OnKeyDown ici, avec les constantes VK_Fx de je ne sais plus quelle unité (Windows peut-être).

  3. #3
    Membre du Club
    Inscrit en
    Septembre 2006
    Messages
    98
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 98
    Points : 50
    Points
    50
    Par défaut Touche F1--->f11
    [b]Il faut D'abord mettre Keypreview de la forme a true, puis programmer l'evenement OnKeyDown . Exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    procedure TForm31.FormKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    begin
      IF KEY = VK_F1 THEN  Button1Click(SeLF);
      IF KEY = VK_F2 THEN  Button2Click(SeLF);
      IF KEY = VK_F4 THEN  Button4Click(SeLF);
      IF KEY = VK_F10 THEN Button5Click(SeLF);
      //
      IF KEY = VK_F5 THEN Button3Click(SeLF);
      //
      If Shift=[ssCtrl] Then
        if Key=Ord('G') THEN DBGRID1.SetFocus;
    end;
    Pour la touche escape programmer evenement OnKeyPress . Exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    procedure TForm31.FormKeyPress(Sender: TObject; var Key: Char);
    begin
      If (Key=Char(VK_ESCAPE)) Then CLOSE;
    end;

  4. #4
    Membre éprouvé

    Profil pro
    Inscrit en
    Mai 2003
    Messages
    582
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Mai 2003
    Messages : 582
    Points : 915
    Points
    915
    Par défaut
    Personellement, j'aime bien utiliser l'évènement Application.OnShurtCut...
    tu peux prendre en contre les touches CTRL et SHIFT...c'est très simple...ca peu ressembler à ca...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
     
    //==============================================================================
    //== Creation de shortcut globalement dans une application.
    //== Si la touche est traitée, Mettre Handled:=TRUE;
    //==============================================================================
    procedure TForm1.AppOnShortCut(var Msg: TWMKey; var Handled: Boolean);
    begin
        //Quand Shift ou Control sont appuyés...GetAsyncKeyState retourne <>0
        if ( ( GetAsyncKeyState(VK_SHIFT)=0) and ( GetAsyncKeyState(VK_CONTROL)=0)) then
        begin
            //ShowMessage(intToStr(GetKeyState(VK_CONTROL)));
            case msg.CharCode of
             VK_F1:begin
                    ShowMessage('Touche F1') ;
                    Handled := TRUE;
                   end;
             {comme ca jusqu'à F12}
     
             VK_F12:begin
                    ShowMessage('Touche F12') ;
                    Handled := TRUE;
                   end;
            end;
        end;
    end;
     
    procedure TForm1.FormCreate(Sender: TObject);
    begin
        application.OnShortCut:=AppOnShortCut;
    end;

Discussions similaires

  1. [Lazarus] Utiliser les touches de fonction pour piloter
    Par Alea46 dans le forum Lazarus
    Réponses: 2
    Dernier message: 05/12/2010, 17h57
  2. altKey pour les touches fonctions "alt F6"
    Par JLC83 dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 11/10/2010, 12h23
  3. [AC-2003] Problème avec les touche de fonctions ?
    Par electrosat03 dans le forum VBA Access
    Réponses: 3
    Dernier message: 30/06/2009, 06h44
  4. Problème avec les touches CTRL & FONCTIONS
    Par bidule999 dans le forum Applications et environnements graphiques
    Réponses: 1
    Dernier message: 03/12/2004, 09h52
  5. Désactiver les touches F1, F2, F3, F4, F5 dans IE
    Par ZiZouJH dans le forum Flash
    Réponses: 7
    Dernier message: 17/02/2003, 09h59

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo