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 :

Comment utiliser AddItem avec un TComboBox ?


Sujet :

Composants VCL Delphi

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    287
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 287
    Points : 91
    Points
    91
    Par défaut Comment utiliser AddItem avec un TComboBox ?
    Salut,

    Que doit-on mettre dans la partie AObject d'une commande additem d'un combobox (AddItem(Item: string, AObject: TObject)

    Mon objectif est d'avoir une valeur différente de itemindex, mais qui me permet de retrouver la ligne sélectionnée.

    Merci

  2. #2
    Membre éclairé
    Avatar de MD Software
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    613
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 613
    Points : 680
    Points
    680
    Par défaut
    Le AddItem te permet d'associer à chaque ligne de ta combo un objet. Ne s'affiche que le string, mais lors de la sélection tu peux accéder à cet objet.
    MD Software
    ---------------------------
    F.A.Q. Delphi - Cours Delphi - Composants Delphi - Sources Delphi

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    287
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 287
    Points : 91
    Points
    91
    Par défaut
    En fait je ne sais pas quel format de donnée y inscrire.

    Dans mon cas je récupère d'une base de données, un ID et un libelle. J'affiche le LIBELLE, mais je cherche à récupérer l'ID (sachant que l'ID est au format integer).

    Existe-il un exemple d'urilisation de cette commande ?

    Merci

  4. #4
    Expert éminent
    Avatar de Lung
    Profil pro
    Analyste-programmeur
    Inscrit en
    Mai 2002
    Messages
    2 664
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Analyste-programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 664
    Points : 6 965
    Points
    6 965
    Par défaut
    Pour ce genre de problème, je me suis fait une ComboBox à 2 colonnes.
    L'urgent est fait, l'impossible est en cours, pour les miracles prévoir un délai. ___ Écrivez dans un français correct !!

    C++Builder 5 - Delphi 6#2 Entreprise - Delphi 2007 Entreprise - Delphi 2010 Architecte - Delphi XE Entreprise - Delphi XE7 Entreprise - Delphi 10 Entreprise - Delphi 10.3.2 Entreprise - Delphi 10.4.2 Entreprise - Delphi 11.1 Entreprise
    OpenGL 2.1 - Oracle 10g - Paradox - Interbase (XE) - PostgreSQL (15.4)

  5. #5
    Membre actif Avatar de marsupilami34
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    574
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 574
    Points : 258
    Points
    258
    Par défaut
    En général,ce que je fais, c'est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Combobox1.Items.Add(paramètre1);
    Avec ce code tu n'es pas obligé de définir un TObject

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    287
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 287
    Points : 91
    Points
    91
    Par défaut
    Effectivement, mais parametre1 correspond au libellé afficher dans la combobox (et non pas à l'ID qui doit être caché à l'utilisateur, et que je cherche à retrouver)

  7. #7
    Membre habitué Avatar de phplive
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    179
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 179
    Points : 150
    Points
    150
    Par défaut
    Bjr,

    Ben tu l'as la réponse : si tu utilises un integer comme clé alors tu peux utiliser AddObject ... sans stocker un objet !!!

    Ex :

    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
    procedure TForm1.Button3Click(Sender: TObject);
    var
      i : Integer;
    begin
      ComboBox1.Items.Clear;
      for i:=0 to 10 do
        ComboBox1.Items.AddObject('Libellé '+IntToStr(i),TObject(i));
    end;
     
    procedure TForm1.ComboBox1Change(Sender: TObject);
    var
      ID : Integer;
    begin
      ID := Integer(ComboBox1.Items.Objects[ComboBox1.ItemIndex]);
      ShowMessage('Libellé = '+ComboBox1.Text+#13#10'ID = '+IntToStr(ID));
    end;

    Maintenant si ton ID est complexe (autre que integer en fait) alors tu dois passer par un véritable objet.
    Je fais ca tout le temps et ca marche nickel

    Voilà

    @+
    Php
    @+
    Php

    D7 Enterprise - XP sp2
    The Truth is Out There

  8. #8
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    287
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 287
    Points : 91
    Points
    91
    Par défaut
    Je vais essayer..

    Merci

Discussions similaires

  1. [VBA] Comment utiliser Access avec Excel
    Par MxPx_23 dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 09/02/2006, 12h00
  2. [Cygwin]Comment utiliser gprof avec Windows ?
    Par Invité dans le forum Autres éditeurs
    Réponses: 1
    Dernier message: 04/02/2006, 12h36
  3. Comment utiliser Word avec Delphi 7 ?
    Par muquet dans le forum Débuter
    Réponses: 9
    Dernier message: 06/12/2005, 18h52
  4. Comment utiliser ShellExecute avec un programme DOS ?
    Par RC10GT_MGT dans le forum API, COM et SDKs
    Réponses: 9
    Dernier message: 22/09/2005, 14h23
  5. Réponses: 12
    Dernier message: 02/02/2004, 13h41

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