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

Langage Delphi Discussion :

Combinaison de touche CTRL + ALT + V


Sujet :

Langage Delphi

  1. #1
    Candidat au Club
    Inscrit en
    Avril 2009
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 2
    Points : 2
    Points
    2
    Par défaut Combinaison de touche CTRL + ALT + V
    Bonjour,

    Sur une application DELPHI, j'aimerais faire afficher un message lorsque la combinaison de touche CTRL + ALT + V est saisie.

    Merci

  2. #2
    rsc
    rsc est déconnecté
    Membre éprouvé
    Avatar de rsc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2004
    Messages
    711
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2004
    Messages : 711
    Points : 918
    Points
    918
    Par défaut
    Propriété KeyPreview de la fiche à True et dans l'événement OnKeyDown :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
    begin
      if (Key = Ord ('V'))
      and (Shift = [ssCtrl, ssAlt])
        then ShowMessage ('V')
    end;

  3. #3
    Rédacteur/Modérateur
    Avatar de ero-sennin
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2005
    Messages
    2 965
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2005
    Messages : 2 965
    Points : 4 935
    Points
    4 935
    Par défaut
    Bonjour et bienvenue sur les forums de Developpez.com ,

    Tout dépend ce que tu veux faire ...
    Si c'est pour rester que dans le cadre de l'application, tu peux utiliser la réponse citée ci-dessus

    Sinon, pour faire un peu plus complet si je puis dire, on peut se tourner vers les HotKeys :

    Dans la partie private de la Form, il faut ajouter ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    hotkey1: Integer;
    procedure WMHotKey(var Msg : TWMHotKey); message WM_HOTKEY;
    Ensuite, on implémente la procédure WMHotKey :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    procedure TForm1.WMHotKey(var Msg: TWMHotKey);
    begin
      if msg.HotKey = hotkey1 then
      begin
        // On définit les action à faire
        ShowMessage("Ctrl + Alt + V pressé");
      end;
    end;
    Pour terminer, on compléte le OnCreate ainsi que OnDestroy de la form :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    procedure TForm1.FormCreate(Sender: TObject);
    const 
      MOD_ALT = 1;
      MOD_CONTROL = 2; // Touche Control nécessaire
    begin
      hotkey1 := GlobalAddAtom('Hotkey1');
      RegisterHotKey(handle, hotkey1, MOD_CONTROL + MOD_ALT,VK_V);
    end;
     
    procedure TForm1.FormDestroy(Sender: TObject);
    begin
      UnRegisterHotKey(handle, hotkey1); // Désactive le HotKey
    end;
    Voilà en gros le principe.
    En espérant t'avoir aidé
    (PS : Code non testé car je n'ai pas Delphi sous la main)
    A+

  4. #4
    Candidat au Club
    Inscrit en
    Avril 2009
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 2
    Points : 2
    Points
    2
    Par défaut
    Ca marche.

    Merci

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 34
    Points : 33
    Points
    33
    Par défaut
    Bonjour à tous,

    je suis débutant dans delphi, et lorsque j'utilise le code d'ero-sennin, delphi me donne une erreur sur VK_V "undeclared identifier VK_V"

    J'ai regarder l'aide de Delphi mais je ne comprends pas grand chose

    Quelqu'un peut-il m'expliquer?

    Merci

  6. #6
    Rédacteur/Modérateur
    Avatar de Andnotor
    Inscrit en
    Septembre 2008
    Messages
    5 812
    Détails du profil
    Informations personnelles :
    Localisation : Autre

    Informations forums :
    Inscription : Septembre 2008
    Messages : 5 812
    Points : 13 527
    Points
    13 527
    Par défaut
    Remplace VK_V par Ord('V').

  7. #7
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 34
    Points : 33
    Points
    33
    Par défaut
    Arf le boulet j'ai tout essayé sauf ça Ord(numero de touche)

    Merci pour ton aide

  8. #8
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 34
    Points : 33
    Points
    33
    Par défaut
    Arf bon j'ai essayé plein de manipe et je n'y arrive pas quelqu'un peut me dire ce qui cloche?

    Merci

    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
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    unit pressed_touch;
     
    interface
     
    uses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, StdCtrls;
     
    type
      TForm1 = class(TForm)
        Button1: TButton;
        procedure FormCreate(Sender: TObject);
        procedure FormDestroy(Sender: TObject);
      private
        hotkey1: Integer;
        procedure WMHotKey(var Msg : TWMHotKey); message WM_HOTKEY;
        { Private declarations }
      public
        { Public declarations }
      end;
     
    var
      Form1: TForm1;
     
    implementation
     
    {$R *.dfm}
     
    procedure TForm1.WMHotKey(var Msg: TWMHotKey);
    begin
      if msg.HotKey = hotkey1 then
      begin
        // On définit les action à faire
        ShowMessage('Ctrl + Alt + V pressé');
      end;
    end;
     
    procedure TForm1.FormCreate(Sender: TObject);
    const 
      MOD_ALT = 1;
      MOD_CONTROL = 2; // Touche Control nécessaire
     
    begin
      hotkey1 := GlobalAddAtom('Hotkey1');
      RegisterHotKey(handle, hotkey1, MOD_CONTROL + MOD_ALT,Ord('v'));
    end;
     
    procedure TForm1.FormDestroy(Sender: TObject);
    begin
      UnRegisterHotKey(handle, hotkey1); // Désactive le HotKey
    end;
     
    end.

  9. #9
    Rédacteur/Modérateur
    Avatar de ero-sennin
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2005
    Messages
    2 965
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2005
    Messages : 2 965
    Points : 4 935
    Points
    4 935
    Par défaut
    Salut,

    C'est v avec une majuscule

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    RegisterHotKey(handle, hotkey1, MOD_CONTROL + MOD_ALT,Ord('V'));
    Au passage, merci à toi Andnotor pour m'avoir corrigé mon code précédent

    A+

  10. #10
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 34
    Points : 33
    Points
    33
    Par défaut
    Non mais les gars je sais que je suis un véritable burne sous delphi mais j'ai quand meme essayé la majuscule. Et quand je fais Ctrl + Alt + V rien ne se passe

    Help please.... Merci

  11. #11
    Rédacteur/Modérateur
    Avatar de ero-sennin
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2005
    Messages
    2 965
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2005
    Messages : 2 965
    Points : 4 935
    Points
    4 935
    Par défaut
    Citation Envoyé par Alferox Voir le message
    Non mais les gars je sais que je suis un véritable burne sous delphi mais j'ai quand meme essayé la majuscule. Et quand je fais Ctrl + Alt + V rien ne se passe

    Help please.... Merci
    Ba heu, chez moi ça fonctionne
    J'ai juste fait un nouveau projet, copié coller ce qui m'intéressé puis j'ai lancé l'application et j'ai fait un CTRL+ALT+V et c'est tout ok

    J'ai dit V majuscule dans le post précédent, car le v minuscule ne fonctionne pas (Ord ne prenant que les majuscules). Et vu ton code, c'était cette erreur qui m'interpelait!

  12. #12
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 34
    Points : 33
    Points
    33
    Par défaut
    Arf je deviens fou lol, je suis sous Delphi 7 peut etre du à ca

  13. #13
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 34
    Points : 33
    Points
    33
    Par défaut
    Dit moi ero-sennin pourrais-tu me coller ton code intégrale? svp
    Car la je ne comprends vraiment pas ce qui cloche

    Merci

  14. #14
    Rédacteur/Modérateur
    Avatar de ero-sennin
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2005
    Messages
    2 965
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2005
    Messages : 2 965
    Points : 4 935
    Points
    4 935
    Par défaut
    Salut,

    Citation Envoyé par Alferox Voir le message
    Dit moi ero-sennin pourrais-tu me coller ton code intégrale? svp
    Car la je ne comprends vraiment pas ce qui cloche

    Merci
    Je te ferais un projet ce soir, actuellement je ne peux pas...
    Sinon, il y a un autre post: ici

    Tu te crées un nouvelle application qui ne contient que le code que j'ai fourni, et ça devrait aller

    A+

  15. #15
    Rédacteur/Modérateur
    Avatar de Andnotor
    Inscrit en
    Septembre 2008
    Messages
    5 812
    Détails du profil
    Informations personnelles :
    Localisation : Autre

    Informations forums :
    Inscription : Septembre 2008
    Messages : 5 812
    Points : 13 527
    Points
    13 527
    Par défaut
    Es-tu sûr que cette combinaison n'est pas déjà utilisée par un autre processus ?

    Ajoute cette ligne après RegisterHotKey pour avoir un éventuel feedback de l'erreur:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ShowMessage(SysErrorMessage(GetLastError));

  16. #16
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 34
    Points : 33
    Points
    33
    Par défaut
    Citation Envoyé par ero-sennin Voir le message
    Salut,



    Je te ferais un projet ce soir, actuellement je ne peux pas...
    Sinon, il y a un autre post: ici

    Tu te crées un nouvelle application qui ne contient que le code que j'ai fourni, et ça devrait aller

    A+
    C'est ce que j'ai fait, le code que j'ai copié plus haut ne comporte rien de plus et se ne marche pas

    Andnotor, j'ai essayé d'ajouter la ligne que tu m'a donné mais je n'ai aucun message d'erreur qui apparait tout semble clean

  17. #17
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 34
    Points : 33
    Points
    33
    Par défaut
    Voila le code complet:

    Le dpr:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    program hotkey;
     
    uses
      Forms,
      pressed_touch in 'pressed_touch.pas' {Form1};
     
    {$R *.res}
     
    begin
      Application.Initialize;
      Application.CreateForm(TForm1, Form1);
      Application.Run;
    end.
    Le PAS
    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
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    unit pressed_touch;
     
    interface
     
    uses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, StdCtrls;
     
    type
      TForm1 = class(TForm)
        Button1: TButton;
        procedure FormCreate(Sender: TObject);
        procedure FormDestroy(Sender: TObject);
      private
        hotkey1: Integer;
        procedure WMHotKey(var Msg : TWMHotKey); message WM_HOTKEY;
        { Private declarations }
      public
        { Public declarations }
      end;
     
    var
      Form1: TForm1;
     
    implementation
     
    {$R *.dfm}
     
    procedure TForm1.WMHotKey(var Msg: TWMHotKey);
    begin
      if msg.HotKey = hotkey1 then
      begin
        // On définit les action à faire
        ShowMessage('Ctrl + Alt + V pressé');
      end;
    end;
     
    procedure TForm1.FormCreate(Sender: TObject);
    const 
      MOD_ALT = 1;
      MOD_CONTROL = 2; // Touche Control nécessaire
     
    begin
      hotkey1 := GlobalAddAtom('Hotkey1');
      RegisterHotKey(handle, hotkey1, MOD_CONTROL + MOD_ALT,Ord('V'));
    end;
     
    procedure TForm1.FormDestroy(Sender: TObject);
    begin
      UnRegisterHotKey(handle, hotkey1); // Désactive le HotKey
    end;
     
    end.
    Si ca marche chez vous la je me tire une balle lol

  18. #18
    Rédacteur/Modérateur
    Avatar de ero-sennin
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2005
    Messages
    2 965
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2005
    Messages : 2 965
    Points : 4 935
    Points
    4 935
    Par défaut
    Salut,

    Chez moi, ça fonctionne
    Mais dit moi, pour créer les OnCreate et OnDestroy, tu as bien fait un double clic sur l'événement attendu dans l'inspecteur d'objets, onglet événement ?
    Car là, en effet ça fonctionne pas

  19. #19
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 34
    Points : 33
    Points
    33
    Par défaut

    Bon bin la je sors !!!!
    Merci pour ton aide, ca fonctionne maintenant Enfin au moin avec toutes les manipes que j'ai essayé j'ai quand meme appris quelque chose lol.

    Merci

  20. #20
    Rédacteur/Modérateur
    Avatar de ero-sennin
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2005
    Messages
    2 965
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2005
    Messages : 2 965
    Points : 4 935
    Points
    4 935
    Par défaut
    Citation Envoyé par Alferox Voir le message

    Bon bin la je sors !!!!
    Merci pour ton aide, ca fonctionne maintenant Enfin au moin avec toutes les manipes que j'ai essayé j'ai quand meme appris quelque chose lol.

    Merci

    Bon courage

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Est-il possible de simuler la combinaison de touches CTRL + F5 ?
    Par beegees dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 02/08/2009, 18h30
  2. Bloquer les Touches Ctrl+Alt+Suppr
    Par allan02390 dans le forum C++
    Réponses: 4
    Dernier message: 24/10/2007, 11h55
  3. passer une combinaison de trois touche ctrl+alt+w à mon micr
    Par marco62118 dans le forum VB 6 et antérieur
    Réponses: 9
    Dernier message: 09/11/2005, 19h43
  4. Comment inhiber la combinaison de touche CTRL+TAB ?
    Par jddev dans le forum Langage
    Réponses: 8
    Dernier message: 18/08/2005, 12h12

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