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 :

Combobox et éléments sans index


Sujet :

Composants VCL Delphi

  1. #1
    Nouveau membre du Club

    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    35
    Détails du profil
    Informations personnelles :
    Âge : 59
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 35
    Points : 30
    Points
    30
    Par défaut Combobox et éléments sans index
    Bonsoir.

    Existe-t'il un moyen, dans un combobox de faire en sorte que certains éléments ne sois pas sélectionnables et n'aient pas de numéro d'index?

    exemple: PIANO (pas D'index)
    Grand Piano (index:0)
    Piano électrique(index:1)
    (espace) (pas d'index)
    CORDES(pas d'index)
    Guitare accoustique(index:2)
    Guitare électrique(Index:3)
    Et caetera.

  2. #2
    Membre expérimenté
    Avatar de sat83
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2004
    Messages
    1 040
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2004
    Messages : 1 040
    Points : 1 307
    Points
    1 307
    Par défaut
    Si c'est pour créer des catégories et des sous-catégories, pourquoi ne pas utiliser plusieurs ComboBox (ou plusieurs ListBox) :

    Dans la première les catégories (CORDE, PIANO, etc...), et dans la seconde les sous-éléments (que tu modifie à chaque changement dans le premier ComboBox).
    Ce que l'on apprend par l'effort reste toujours ancré plus longtemps...

  3. #3
    Nouveau membre du Club

    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    35
    Détails du profil
    Informations personnelles :
    Âge : 59
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 35
    Points : 30
    Points
    30
    Par défaut
    Bonjour.

    J'ai déjà pensé à faire des catégories dans un combobox séparé.
    Pour l'instant c'est encore un peu compliqué pour moi.

    En plus, il faudrait que les index suivent vraiment l'ordre des instruments. C'est très important.
    Ex:
    Dans combobox1
    PIANO

    Dans Combobox2
    Grand Piano (index:0)
    Piano électrique(index:1)

    Dans combobox1
    CORDES

    Combobox2
    Guitare accoustique(index:2)<--- remarque que là le premier index doit être 2
    Guitare électrique(Index:3)

    Et j'avoue que je vois pas comment changer tous les élément de la seconde Combobox pour l'instant. Il faut les stocker quelque part, et j'imagine que la méthode n'est pas très simple. J'ai vu quelques info la dessus dans le forum mais il me manque encore un peu de vocabulaire delphien pour tout comprendre.

    Enfin si tu m'éclaire je veux bien essayer.

    À titre d'info tout de même j'aimerais savoir si ma première demande est faisable.

    Merci beaucoup pour ta réponse.

  4. #4
    Nouveau membre du Club

    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    35
    Détails du profil
    Informations personnelles :
    Âge : 59
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 35
    Points : 30
    Points
    30
    Par défaut
    Finalement j'ai une autre idée, mais je sais pas si ça va être possible.

    Je vais prendre un autre exemple pour des raisons de simplicité.

    Imaginé que dans ma combobox2 j'ai à la suite toutes les lettres de A à Z en majuscule; puis toutes les lettres de a à z en minuscule puis tous les chiffres, de 0 à 9 puis tous les symboles.

    Donc j'ai une combobox1 dans laquelle j'ai Majuscule, minuscule, chiffre et symbole.

    Donc il y a un petit bout de programme qui sera à peu près comme ç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
    procedure TForm1.ComboBox1Change(Sender: TObject);
     
    begin
     
      Edit1.Text:=Combobox1.Items[0];
     
      Combobox2.SetFocus;
     
      Combobox2.DroppedDown:=true;
     
      If combobox1.ItemIndex=0 then
     
    Combobox2.text:=combobox2.items[52];
     
    end;
    Si je ne m'abuse dans combobox2.text, il y aura le chiffre 0

    mais en fait ce que je voudrais, c'est qu'à la place de m'écrire 0 dans la partie cadre de la combobox2, le programme aille directement pointer sur 0 dans le menu déroulant.

    Est-ce possible, j'ai essayé plein de truc du style 'Combobox2.ItemSelect'.
    mais ça marche pas.

    Donc si quelqu'un connait une commande qui peu faire ça je suis tout ouïe.

    Merci.

  5. #5
    Membre émérite
    Avatar de skywaukers
    Homme Profil pro
    Directeur de projet
    Inscrit en
    Juin 2005
    Messages
    1 216
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations professionnelles :
    Activité : Directeur de projet
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2005
    Messages : 1 216
    Points : 2 303
    Points
    2 303
    Par défaut
    Bonsoir,

    Es-tu obligé de faire des combobox? Si tu peux t'en passer alors tu pourrais utiliser un TTreeview car cela me semblerait plus adapté à ton cas. Il te permettrait de présenter hiérarchiquement les choses :

    -Piano
    |--Grand piano
    |--Piano électrique
    -Cordes
    |--Guitare électrique
    |--Guitare acoustique

    A chaque item tu peux associer un objet pour te permettre d'avoir des données associées.

    @++
    Dany

  6. #6
    Nouveau membre du Club

    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    35
    Détails du profil
    Informations personnelles :
    Âge : 59
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 35
    Points : 30
    Points
    30
    Par défaut
    Ttreeview Je connaissais pas.
    Je vais chercher des infos la dessus.
    Mais quand même ma dernière idée, je l'aime bien!

    Merci.

  7. #7
    Expert éminent sénior

    Avatar de sjrd
    Homme Profil pro
    Directeur de projet
    Inscrit en
    Juin 2004
    Messages
    4 517
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : Suisse

    Informations professionnelles :
    Activité : Directeur de projet
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2004
    Messages : 4 517
    Points : 10 154
    Points
    10 154
    Par défaut
    Citation Envoyé par ornitho Voir le message
    mais en fait ce que je voudrais, c'est qu'à la place de m'écrire 0 dans la partie cadre de la combobox2, le programme aille directement pointer sur 0 dans le menu déroulant.

    Est-ce possible, j'ai essayé plein de truc du style 'Combobox2.ItemSelect'.
    mais ça marche pas.

    Donc si quelqu'un connait une commande qui peu faire ça je suis tout ouïe.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ComboBox2.ItemIndex := 52;
    sjrd, ancien rédacteur/modérateur Delphi.
    Auteur de Scala.js, le compilateur de Scala vers JavaScript, et directeur technique du Scala Center à l'EPFL.
    Découvrez Mes tutoriels.

  8. #8
    Nouveau membre du Club

    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    35
    Détails du profil
    Informations personnelles :
    Âge : 59
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 35
    Points : 30
    Points
    30
    Par défaut
    Ça y est j'ai réglé mon problème.

    Petite explication pour ceux que ça interesse.

    Voici deux combobox:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    procedure TForm1.CategorieInstrumentChange(Sender: TObject);
    begin
     for C := 0 to 15 do
     if CategorieInstrument.ItemIndex =C then
       begin
        Instruments.Text :=instruments.Items[C*8];
        Instruments.ItemIndex:=C*8;
       end;
     Instr:=Instruments.ItemIndex;
    end;
    et
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    procedure TForm1.InstrumentsChange(Sender: TObject);
    begin
    Instr:=Instruments.ItemIndex;
    for P := 0 to 15 do
      begin
        If (instruments.ItemIndex>=P*8) and (instruments.ItemIndex <=((P*8)+8)-1)
         then CategorieInstrument.Text:= CategorieInstrument.Items[P];
       end;
    end;
    Le premier, CategorieInstrument,
    Permet de choisir les catégories d'instruments général midi.

    Le deuxième, Instruments,
    permet de choisir les instruments dans ces catégories.

    Comme les catégories sont composées invariablement de 8 instruments, CategorieInstrument permet de se placer sur le premier élément de chaque catégorie. Instr, placer dans un MidiOutShortMsg permet de jouer l'instrument séléctionné. Quand au combobox Instrument, il permet de ce placer sur l'instrument voulu tout en affichant la catégorie en cas de dépassement de celle çi. Donc, dans ces procédures tous les éléments sont toujours visibles. Çi c'est pas clair essayer en plaçant 16 élément dans CategorieInstrument et 128 dans Instruments. Pour le Général midi vous trouverez ça un peu partout sur le net.

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 04/09/2006, 21h02
  2. [VB.NET] ComboBox et éléments précédent/suivant
    Par Bourbaky dans le forum Windows Forms
    Réponses: 3
    Dernier message: 15/05/2006, 19h37
  3. xsl:Template sur un élément sans namespace
    Par dust45 dans le forum XSL/XSLT/XPATH
    Réponses: 4
    Dernier message: 27/10/2005, 16h52
  4. [xslt] Suppression des éléments sans contenu.
    Par dibbouk dans le forum XSL/XSLT/XPATH
    Réponses: 6
    Dernier message: 17/06/2005, 17h17

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