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 :

utilisation des combobox


Sujet :

Composants VCL Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Mars 2010
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 13
    Par défaut utilisation des combobox
    Bonjour a tous,

    J'utilise une combobox dans mon projet mais j'aimerais que l'utilisateur du programme ne puisse que choisir ce que j'ai predefinis dans cette combobox, et donc ne pas entrer de texte lui meme ..
    Si je change la propriété Style et que je la met sur csDropDownList au lieu de csDropDown, effectivement on ne sait rien introduire dans la combobox mais ce que j'avais mis en combobox1.texte n'est plus pris en compte
    ________
    Par exemple > avec csDropDown > choix de votre | -- OS --| avec la liste qui se deroule .. winxp, vista ..

    Mais avec csDropDownList cela efface la mention "-- OS --" .

    Est il possible d'en plus de bloquer le fait que la combobox est editable de laisser l'exemple/mention ??

    Merci d'avance,

    wes

  2. #2
    Membre confirmé Avatar de valoji
    Inscrit en
    Septembre 2005
    Messages
    124
    Détails du profil
    Informations personnelles :
    Âge : 47

    Informations forums :
    Inscription : Septembre 2005
    Messages : 124
    Par défaut
    Bonjour,

    Sur ta combobox tu laisse le style : csDropDown

    Sur les évenements ONKEYDOWN et ONKEYPRESS tu empêche la saisi du clavier.

    Sur l'évènement Onexit
    Si le combobox.text est null alors combobox.text = '--OS--

    Valoji

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    119
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2003
    Messages : 119
    Par défaut
    Pourquoi ne pas mettre -- OS -- aussi dans Items ?

  4. #4
    Membre éprouvé Avatar de BuzzLeclaire
    Homme Profil pro
    Dev/For/Vte/Ass
    Inscrit en
    Août 2008
    Messages
    1 606
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Dev/For/Vte/Ass

    Informations forums :
    Inscription : Août 2008
    Messages : 1 606
    Par défaut
    Bonjour wesloff,

    Tu devrais déjà utilisé la propriété items de ton combobox pour le remplir et utilisé le item.Index pour le positionner correctement. (sachant que item.index = -1 quand c'est vide)

    Ensuite dans l'evement on keydown de ton combobox :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    procedure TForm1.ComboBoxKeyPress(Sender: TObject;
      var Key: Char);
    begin
      if not CharInSet(Key, [Chr(VK_BACK), Chr(VK_DELETE)]) then Key := #0;
    end;
    Dans cette exempple on autorise le suppr et le back.


  5. #5
    Membre averti
    Inscrit en
    Mars 2010
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 13
    Par défaut
    Tout d'abord, merci d'avoir pris le temps de repondre a ma question ..
    Ensuite voila la façon dont je remplis ma combobox :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    combobox1.clear;
    combobox1.Items.Add(winn xp);
    combobox1.Items.Add('win vista');
    combobox1.Items.Add('win 7');
    combobox1.Items.Add('Mac Os');
    combobox1.Items.Add('linux');
    Je voudrais dans l'absolu laisser le style de la combobox sur csDropDownList
    et en plus faire en sorte que la combobox affiche en "premiere ligne" la ligne -- OS -- .. a la place d'un blanc ..
    mais si j'essaie de mettre par exemple : combobox1.items.string[-1]:='-- OS --'; cela ne fonctionne pas malheureusement pour moi, il est pas possible de faire un combobox1.items.add.stringd[-1]:='-- OS --'; apparement ..

    Voyez vous une solution sans utiliser les evenements ONKEYDOWN et ONKEYPRESS ??

    j'ai aussi essayer des commandes comme :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    combobox1.items.ValueFromIndex[-1]:='-- OS --';
    // ou 
    combobox.items.indexof('-- OS --');
    mais sans succés ..

    Merci d'avance de vos reponses !

    Bien à vous,

    Wesloff

  6. #6
    Membre éprouvé Avatar de BuzzLeclaire
    Homme Profil pro
    Dev/For/Vte/Ass
    Inscrit en
    Août 2008
    Messages
    1 606
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Dev/For/Vte/Ass

    Informations forums :
    Inscription : Août 2008
    Messages : 1 606
    Par défaut
    @wesloff,

    Mais pourquoi tu essai d'utiliser le -1 ? j'ai du mal m'expliquer...

    Si tu veux mettre ton '--- OS ----' mets le dés le début fais un Add avec.

    Ensuite à toi d'afficher index 0 qui sera le '--- OS ----', et les autres 1,2 pour tes OS.

    Mettre le itemIndex à -1 sert simplement a retirer ton combobox la séléction et mette un blanc à la place. A toi de faire en sorte d'avoir l'itemindex à 0 quant-il le faut...

  7. #7
    Membre averti
    Inscrit en
    Mars 2010
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 13
    Par défaut
    ok c'est deja plus clair dans ma tete, et ce n'est pas que tu expliques mal, c'est plutot moi qui patauge lol ..
    Et donc avec cette methode, je retrouve mon '-- 0S --' quand je deroule la combobox, chose que je ne veux pas en fait .. je voudrais juste que ce soit afficher quand le user du prog n'a encore toucher a rien, mais une fois que la liste a été déroulée, il ne doit pas etre visible dans cette liste en question ..
    Je ne sais pas si je me fais bien comprendre ..

  8. #8
    Membre éprouvé Avatar de BuzzLeclaire
    Homme Profil pro
    Dev/For/Vte/Ass
    Inscrit en
    Août 2008
    Messages
    1 606
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Dev/For/Vte/Ass

    Informations forums :
    Inscription : Août 2008
    Messages : 1 606
    Par défaut
    Ok.

    Alors fait toi une petite fonction, du genre :

    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
     
    type
      TForm1 = class(TForm)
    //...
      private
        { Déclarations privées }
        procedure InitCombo;
      public
        { Déclarations publiques }
      end;
     
    implementation
     
    // ...
    procedure Tform1.InitCombo;
    begin
     
      // Initialisation
      ComboBox1.Items.Clear;
      ComboBox1.Items.Add('MacOs');
      ComboBox1.Items.Add('Linux');
      ComboBox1.Items.Add('Windows');
     
      ComboBox1.ItemIndex := -1;
      ComboBox1.Text := '=== OS ===';
    end;
    Utilisation :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     initCombo; // tout simplement

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

Discussions similaires

  1. Utilisation des Combobox avec DataBinding ?
    Par mohamed301084 dans le forum VB.NET
    Réponses: 0
    Dernier message: 11/05/2011, 16h37
  2. Utilisation des ComboBox
    Par furiousdraz dans le forum GTK+ avec C & C++
    Réponses: 3
    Dernier message: 15/07/2008, 18h23
  3. Problème d'utilisation des ComboBox
    Par CyberSlan dans le forum MFC
    Réponses: 8
    Dernier message: 06/06/2008, 16h12
  4. Construire un critère de filtre en utilisant des ComboBox
    Par mary17 dans le forum Windows Forms
    Réponses: 7
    Dernier message: 20/04/2007, 09h19
  5. Questions concernant l'utilisation des ComboBox
    Par philguio dans le forum Windows Forms
    Réponses: 2
    Dernier message: 09/01/2007, 11h26

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