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

Composants VCL Delphi Discussion :

Tabulation


Sujet :

Composants VCL Delphi

  1. #1
    Membre à l'essai
    Inscrit en
    Septembre 2002
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Septembre 2002
    Messages : 29
    Points : 24
    Points
    24
    Par défaut Tabulation
    Salut,


    j'ai une liste de TEedit et je veux que lorsque l'utilisateur presse sur la barre d'espace le curseur passe à l'edit suivant...

    ce que je ne trouve pas c'est comment passer à un autre edit.

    merci d'avance .
    Vive Delphi !!

  2. #2
    Membre habitué
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    113
    Détails du profil
    Informations personnelles :
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juin 2003
    Messages : 113
    Points : 137
    Points
    137
    Par défaut
    Utilise la propriété TabOrder de tes TEdit.

    Premier TEdit qui doit avoir le focus : TabOrder := 1;
    Deuxième TEdit qui doit avoir le focus : TabOrder := 2;
    ...

    Ensuite, chaque évenement "KeyDowm" de tes TEdit pointe sur cette procedure qui simule l'appuie sur la touche TAB quand on appuie sur la touche space :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    procedure TForm1.Edit1KeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    begin
      if Key = VK_SPACE then
        begin
          Key := Word(#0);
     
          Keybd_event(VK_TAB,0,0,0);
          Keybd_event(VK_TAB,0,KEYEVENTF_KEYUP,0);
        end;
    end;

  3. #3
    Membre à l'essai
    Inscrit en
    Septembre 2002
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Septembre 2002
    Messages : 29
    Points : 24
    Points
    24
    Par défaut
    merci mais comment annuler l'espace tapé , j'ai pensé à le chercher puis le supprimer mais est ce qu'on peut annuler l'effet de la touche autre de ce qu'on a preciser ?
    Vive Delphi !!

  4. #4
    Membre habitué
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    113
    Détails du profil
    Informations personnelles :
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juin 2003
    Messages : 113
    Points : 137
    Points
    137
    Par défaut
    Erreur de ma part dans l'évènement en effet.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
    begin
      if Key = Char(VK_SPACE) then
        begin
          Key := #0;
     
          Keybd_event(VK_TAB,0,0,0);
          Keybd_event(VK_TAB,0,KEYEVENTF_KEYUP,0);
        end
    end;
    Et voilà

  5. #5
    Membre à l'essai
    Inscrit en
    Septembre 2002
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Septembre 2002
    Messages : 29
    Points : 24
    Points
    24
    Par défaut
    autre chose c'est que lorsque le edit contient déja un texte alors il est effacé..

    càd faut completement changer le role de l'espace..
    Vive Delphi !!

  6. #6
    Membre habitué
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    113
    Détails du profil
    Informations personnelles :
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juin 2003
    Messages : 113
    Points : 137
    Points
    137
    Par défaut
    La prochaine fois mets un titre plus explicite que "Tab", tu auras plus de chance d'être aider.

    Et n'oublies pas de cliquer sur "Résolu" en bas à gauche

  7. #7
    Membre à l'essai
    Inscrit en
    Septembre 2002
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Septembre 2002
    Messages : 29
    Points : 24
    Points
    24
    Par défaut
    Je m'excuse PyRoFlO mais avec mon ptit débit g pas encore vu votre correctif et maintenant merci pour le nouveau code qui marche parfaitement mais pouvez vouez m'expliquez ligne par ligne ce code car ds le help y'a pas Keybd_event..

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    Key := #0; 
     
          Keybd_event(VK_TAB,0,0,0); 
          Keybd_event(VK_TAB,0,KEYEVENTF_KEYUP,0);


    PS: Pour le [Résolu] c'est apres l'explication .



    merci encore
    Vive Delphi !!

  8. #8
    Membre habitué
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    113
    Détails du profil
    Informations personnelles :
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juin 2003
    Messages : 113
    Points : 137
    Points
    137
    Par défaut
    Excuses acceptées

    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 TForm1.Edit2KeyPress(Sender: TObject; var Key: Char);
    begin
      // Si la touche pressée est la barre d'espace
      if Key = Char(VK_SPACE) then
        begin
          // On annule l'effet de cette touche
          Key := #0;
     
          // On simule l'appuie sur la touche TAB
          Keybd_event(VK_TAB,0,0,0);
          // Puis on simule son relachement
          Keybd_event(VK_TAB,0,KEYEVENTF_KEYUP,0);
        end
    end;
    La prochaine fois j'expliquerai de suite, ça évitera de recharger la page

  9. #9
    Membre à l'essai
    Inscrit en
    Septembre 2002
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Septembre 2002
    Messages : 29
    Points : 24
    Points
    24
    Par défaut
    merci pour votre generosité PyRoFlO car sinon avec Keybd_event(VK_SHIFT,0,0,0) seulement j'ai failli supprimer: tt mes archives !!!
    Vive Delphi !!

  10. #10
    Membre habitué
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    113
    Détails du profil
    Informations personnelles :
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juin 2003
    Messages : 113
    Points : 137
    Points
    137
    Par défaut
    Citation Envoyé par jihed
    merci pour votre generosité PyRoFlO car sinon avec Keybd_event(VK_SHIFT,0,0,0) seulement j'ai failli supprimer: tt mes archives !!!


    Bonne continuation

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. espace ou tabulation?
    Par caribou_belle dans le forum Langages de programmation
    Réponses: 27
    Dernier message: 05/10/2003, 11h57
  2. tabulation sur champs de saisie
    Par xClyde dans le forum Flash
    Réponses: 2
    Dernier message: 25/09/2003, 16h49
  3. Taille des tabulations dans un TMemo ?
    Par dergen dans le forum Composants VCL
    Réponses: 2
    Dernier message: 07/01/2003, 19h38
  4. Comment imprimer des tabulations ?
    Par Invité dans le forum C++Builder
    Réponses: 2
    Dernier message: 27/11/2002, 11h30
  5. [VB6] Touche de tabulation
    Par BernardMatthey dans le forum VB 6 et antérieur
    Réponses: 9
    Dernier message: 26/11/2002, 22h06

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