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

C++Builder Discussion :

ListBox, AutoComplete et raccourcis clavier


Sujet :

C++Builder

  1. #1
    Membre habitué
    Inscrit en
    Avril 2006
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 9
    Par défaut ListBox, AutoComplete et raccourcis clavier
    Bonjour,
    Voila mon pb : j'ai une ListBox avec des éléments faisant référence a des objets de type différents dans mon appli.
    J'ai implémenté l'évènement OnKeyDown pour que lorsque l'utilisateur tape CRTL + M cela sélectionne les lignes correspondants aux objets de type M.
    Le problème c'est que mes raccourcis marchent très bien mais qu'aprés avoir été sélectionnées, les lignes se déselectionnent immédiatement et c'est la ligne dont le nom commence par "m" qui se sélectionne.

    Je pensais jouer sur la propriété Autocomplete mais cela ne change rien.

    Aves vous des idées ?

    Merci

  2. #2
    Membre émérite
    Avatar de bandit boy
    Profil pro
    Inscrit en
    Février 2006
    Messages
    916
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 916
    Par défaut
    Salut,
    Comment fais-tu cette sélection? Peux t on voir un peu de code?
    Une solution de fortune serait de coder sur l'évènnement OnKeyPress de la ListBox :
    Le déplacement ne se fait plus, par contre je ne sais pas si ta sélection s'efface ou pas, à toi de tester.

  3. #3
    Membre habitué
    Inscrit en
    Avril 2006
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 9
    Par défaut
    J'ai testé avec key = null mais rien n'y fait.

    Voila un bout de mon code, cela donne ça

    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
     
    void __fastcall TFenetre::LBoxLibKeyDown(
          TObject *Sender, WORD &Key, TShiftState Shift)
    {
     
       if(Key == VK_DELETE)
          {
            butSuppClick(this);
          }
       else if(Shift.Contains(ssCtrl))
          {
           intiTypeSel; 
           switch (Key)
              {
               case 'M' :
                    iTypeSel = ObjetM; //1
                    break;
     
              case 'V' :
                    iTypeSel = ObjetV; //1
                    break;
              }
           SelectObjt(iTypeSel);
    }

  4. #4
    Membre émérite
    Avatar de bandit boy
    Profil pro
    Inscrit en
    Février 2006
    Messages
    916
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 916
    Par défaut
    Voici un code que j'ai testé et qui sélectionne LES lignes qui commence par la lettres saisie.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    void __fastcall TForm1::ListBox1KeyPress(TObject *Sender, char &Key)
    {
        int i;
        for(i=0;i<ListBox1->Items->Count;i++)
        {
            if(ListBox1->Items->Strings[i][1] == Key)
                ListBox1->Selected[i]=true;
        }
        Key = NULL;
    }
    J'ai vu que pour toi, les objets de type M ne commence pas par la lettre M, mais le principe est le même. Il te suffit de coder sur l'évènnement OnKeyPress.
    Si tu veux détecter les touches:
    de a à z : 97 à 123 (en décimal)
    de A à Z: 65 à 91
    de Ctrl+a à Ctrl+Z: 1 à 26 (idem pour Ctrl+A à Ctrl+Z)

  5. #5
    Membre habitué
    Inscrit en
    Avril 2006
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 9
    Par défaut
    Autant pour moi, le Key = NULL; fonctionne !!
    Je ne l'avais pas placé au bon endroit du code

    Merci

  6. #6
    Membre éprouvé

    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    1 163
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 1 163
    Par défaut
    Juste pour info,

    pour mettre [Résolu] devant ton message il te suffit de cliquer sur le bouton résolu en bas de la page de ton post.

    J'ai modifié ton titre et cliqué sur résolu à ta place dans ce post.
    Comme ça la prochaine fois tu sauras ;-)

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

Discussions similaires

  1. [JTable] Raccourci clavier sur une Table
    Par sylvain_2020 dans le forum Composants
    Réponses: 5
    Dernier message: 05/07/2007, 09h01
  2. désactivation des raccourci clavier
    Par Arnaud-h dans le forum C++Builder
    Réponses: 3
    Dernier message: 16/06/2004, 09h28
  3. [Debutant(e)] Liste raccourcis clavier
    Par lfournial dans le forum Eclipse Java
    Réponses: 2
    Dernier message: 11/05/2004, 14h51
  4. [BPW]Raccourcis clavier dans une fenêtre enfant
    Par Alcatîz dans le forum Turbo Pascal
    Réponses: 2
    Dernier message: 18/02/2004, 20h07
  5. [] Raccourci clavier pour bouton d'une barre d'outil
    Par Sébastien dans le forum VB 6 et antérieur
    Réponses: 12
    Dernier message: 24/03/2003, 17h02

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