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 :

Comment inhiber la combinaison de touche CTRL+TAB ?


Sujet :

Langage Delphi

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Août 2005
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 5
    Points : 4
    Points
    4
    Par défaut Comment inhiber la combinaison de touche CTRL+TAB ?
    Comment inhiber la combinaison de touche CTRL+TAB dans une application MDI sous Delphi 6,7...

    En effet, j'ai une application Delphi qui ouvre plusieurs fenetres mais certaines sont cachées (fermées mais chargées). Or, lorsque l'on utilise CTRL+TAB il est possible de passer d'une fenêtre chargée à l'autre et cela me gène !
    Y-a-t-il une soultion ?

    Merci d'avance.
    JD

  2. #2
    Membre du Club

    Inscrit en
    Janvier 2005
    Messages
    48
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 48
    Points : 61
    Points
    61
    Par défaut
    Tu peux intercepter cette combinaison de touches en mettant KeyPreview de la fiche à True puis en contrôlant les touches enfoncées

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
     
    procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    begin
      If (ssCtrl in Shift) And (Key=9) then Key:=0;
    end;

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Août 2005
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 5
    Points : 4
    Points
    4
    Par défaut
    Effectivement c'est la première chose que j'ai fait.
    mais ça ne marche pas.... dans l'aide en ligne il est spécifié que lorsque KeyPreview est à TRUE les touches de direction et la touche TAB ne sont pas filtrées !
    Merci quand même....

    Y aurait-il une autre solution ?

    JD

  4. #4
    Membre habitué
    Inscrit en
    Mai 2005
    Messages
    258
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 258
    Points : 156
    Points
    156
    Par défaut
    Si l'anglais ne te rebute pas,voici peut-être une solution...

    http://www.swissdelphicenter.ch/torr...ode.php?id=591

  5. #5
    Membre du Club

    Inscrit en
    Janvier 2005
    Messages
    48
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 48
    Points : 61
    Points
    61
    Par défaut
    Contrairement à ce qui est écrit dans l'aide, la touche Tab peut être détectée par KeyPreview, mais seulement dans les applications SDI.
    Par contre en MDI la fiche principale n'intercepte plus aucune touche alors que les fiches enfant peuvent intercepter la plupart des touches, y compris les touches de direction, mais pas la touche Tab.

    Désolé pour la réponse précédente, je n'avais fait le teste qu'en SDI.

  6. #6
    Candidat au Club
    Profil pro
    Inscrit en
    Août 2005
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 5
    Points : 4
    Points
    4
    Par défaut
    Merci EPONETTE pour ce lien mais la solution n'est pas adaptée.
    Après plusieurs tests, j'arrive au même point que la solution avec KeyPreview : CTRL+TAB passe toujours sans être détecté par les fenêtres MDI parent ou enfant !

    Je commence à désespérer de trouver une solution

    Merci de m'indiqué d'autres pistes si vous en avez....

    JD

  7. #7
    Membre confirmé

    Profil pro
    Inscrit en
    Mars 2005
    Messages
    258
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 258
    Points : 558
    Points
    558
    Par défaut
    Salut jddev,

    Essaie peut-etre ca je ne sais pas :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    var n:integer; 
     
    SystemParametersInfo(SPI_SCREENSAVERRUNNING, 1, @n, 0);

  8. #8
    Membre confirmé

    Profil pro
    Inscrit en
    Mars 2005
    Messages
    258
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 258
    Points : 558
    Points
    558
    Par défaut
    Sinon essaye celà pour forcer la fiche MDI enfant à rester invisible:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     if Assigned(ChildForm) then
        ShowWindow(ChildForm.Handle, SW_HIDE);
    Je ne sais pas si ca peut marcher, mais tu peux essayer...

  9. #9
    Membre confirmé

    Profil pro
    Inscrit en
    Mars 2005
    Messages
    258
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 258
    Points : 558
    Points
    558
    Par défaut
    Sinon essaye celà pour forcer la fiche MDI enfant à rester invisible:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     if Assigned(ChildForm) then
        ShowWindow(ChildForm.Handle, SW_HIDE);
    Je ne sais pas si ca peut marcher, mais tu peux essayer...

Discussions similaires

  1. Combinaison de touche CTRL + ALT + V
    Par GuiGui79 dans le forum Langage
    Réponses: 20
    Dernier message: 22/11/2009, 18h21
  2. 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
  3. Réponses: 20
    Dernier message: 27/11/2007, 14h40
  4. Touche Ctrl + Tab pour changer de JInternalFrame
    Par atha2 dans le forum AWT/Swing
    Réponses: 3
    Dernier message: 31/08/2007, 01h12
  5. [VCL] Comment détecter une combinaison de touches ?
    Par micatmidog dans le forum Composants VCL
    Réponses: 3
    Dernier message: 23/01/2005, 14h19

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