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 :

Associer numéro à une liste


Sujet :

Composants VCL Delphi

  1. #1
    Membre éclairé Avatar de MANU_2
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    417
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 417
    Par défaut Associer numéro à une liste
    Dans une liste déroulante, j'affiche une liste de noms & prénoms.
    Je voudrais associé à chaque nom un numéro (de manière invisible).

    Es ce possible ?
    Si oui, comment ?


    Merci

  2. #2
    Membre éprouvé
    Avatar de Andry
    Profil pro
    Informaticien
    Inscrit en
    Juillet 2002
    Messages
    1 164
    Détails du profil
    Informations personnelles :
    Localisation : Madagascar

    Informations professionnelles :
    Activité : Informaticien

    Informations forums :
    Inscription : Juillet 2002
    Messages : 1 164
    Par défaut
    Salut.

    Bien sur que tu peux le faire.
    Regarde l'aide sur la methode AddObject de la Liste qui prends deux paramètres en entrée.

    A+

  3. #3
    Membre Expert
    Avatar de LadyWasky
    Femme Profil pro
    Inscrit en
    Juin 2004
    Messages
    2 932
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 54
    Localisation : France, Hauts de Seine (Île de France)

    Informations forums :
    Inscription : Juin 2004
    Messages : 2 932
    Par défaut
    En fait, c'est déjà fait :
    Soit ta numérotation dépend de l'ordre dans lequel se trouve tes noms auquel cas, tu pex tirer parti du fait que tout ce qui est basé sur un TStringst, y compris une ListBox (ça marche aussi avec : TStringList,TMemo,TComboBox, etc...) considère que chaque Ligne (qui correspond donc à un nom dans ton cas) possède un index numéroté de 0 à n-1, n étant le nombre de lignes correspondant à ta liste.

    Va voir l'aide delphi sur TListBox,
    - tu as la propriété ItemIndex qui correspond au numéro de ligne qui à été choisis
    - La propriété Items est un TStrings, c'est à dire une liste de chaîne de caractères dans lesquels se trouvent tes noms et prénoms. Si tu regarde dans l'aide ce que tu as a disposition avec TStrings, tu trouve :
    - La propriété Count : le nombre d'éléments dans ta liste.
    - La propriété Strings : Strings[Index] te renvoie la ligne numéro Index
    - La Methode IndexOf(S:String) qui te renvoie l'index de la premiere ligne correspondante à ta recherche dans la liste.


    Après, si tu veux absolument mettre un numéro différent que le numéro de ligne, il faut que tu crée une autre liste qui fasse la correspondance entre Nom d'une part et numéro d'autre part. Pour ce faire tu peux utiliser un TStringList et tirer partie des méthodes "Names" et "Values".

    Cherche dans l'aide de Delphi, tu verra, c'est assez explicite pour ce que tu veux faire.

    Bon courage

  4. #4
    Membre chevronné
    Avatar de Manopower
    Inscrit en
    Décembre 2003
    Messages
    516
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 516
    Par défaut
    Pour compléter la proposition d'Andry, voici l'exemple

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Const
      NUM_EPONGE=0;
      NUM_BRICOLEUR=12;
      NUM_DYLAN=54;
    begin
    //Remplissage de la combo :
    ComboBox1.AddItem('Bob l'éponge',Pointer(NUM_EPONGE));
    ComboBox1.AddItem('Bob le bricoleur',Pointer(NUM_BRICOLEUR));
    ComboBox1.AddItem('Bob Dylan',Pointer(NUM_DYLAN));
    Ensuite pour récupérer ce numéro invisible (numéro de l'objet sélectionné):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    num := Integer(combobox1.Items.Objects[combobox1.itemIndex]);
    et enfin pour sélectionner un item dans la liste à partir de son numéro secret
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ComboBox1.ItemIndex:= ComboBox1.Items.IndexOfObject(Pointer(NUM_EPONGE);
    Attention à ne pas confondre ce numéro, qui set associé à l'objet dans la liste déroulante avec l'index, qui lui référence juste la position de l'objet dans la liste (comme tu as vu, j'ai mis dans mes constantes les valeurs 0, 12 et 54, alors que les indexs sont 0, 1 et 2

  5. #5
    Membre éprouvé
    Avatar de Andry
    Profil pro
    Informaticien
    Inscrit en
    Juillet 2002
    Messages
    1 164
    Détails du profil
    Informations personnelles :
    Localisation : Madagascar

    Informations professionnelles :
    Activité : Informaticien

    Informations forums :
    Inscription : Juillet 2002
    Messages : 1 164
    Par défaut
    Voilà,

    Comme l'exemple de Sylvain Leray, AddObject s'utilise de la même manière que AddItem.
    La seule différence est que AddObject est une fonction alors que AddItem est un procédure.

    Voilà,

    A+

  6. #6
    Membre éclairé Avatar de Soulama
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2004
    Messages
    619
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2004
    Messages : 619
    Par défaut
    Salut,
    si jai bien compris:
    je crois qu'a chaque Box.add(Str), ya un (Auto)index interne qui sincremente.
    Alors si tu veux avoir lindex actuel, faut faire:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
       box.Items[Box.ItemIndex]
    et voila

  7. #7
    Membre éclairé Avatar de Soulama
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2004
    Messages
    619
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2004
    Messages : 619
    Par défaut
    Et si tu veux referencer 2 Objects ala fois, faut utiliser:
    TBucketList
    c une sorte de HashTable implementer avec Delphi(je suis sur Delphi 7)
    Bon courage

  8. #8
    Membre éclairé Avatar de MANU_2
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    417
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 417
    Par défaut
    Merci beaucoup pour vos réponses mais je ne suis pas plus avancer.

    Avec AddObject, j'ai des problème de type.

    Avec AddItem, j'ai l'erreur suivante : [Erreur] U_carnet.pas(337): Identificateur non déclaré : 'AddItem'

  9. #9
    Membre éclairé Avatar de MANU_2
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    417
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 417
    Par défaut
    Ma solution :
    creer une autre liste déroulante invisble qui contient mes numéros et qui a le même index que dans l'autre liste déroulante.

  10. #10
    Membre chevronné
    Avatar de lil_jam63
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    447
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 447
    Par défaut
    Citation Envoyé par MANU_2
    Ma solution :
    creer une autre liste déroulante invisble qui contient mes numéros et qui a le même index que dans l'autre liste déroulante.
    Ce n'est pas une solution mais du bricolage .
    La solution évoqué plus haut par Andry et Sylvain Leray sont bonne, c'est toi qui a du mal les implementer. donne nous ton code (la partie en question) on y verra plus clair sur ton histoire de problème de type et AddItem qui n'est pas reconnue.

  11. #11
    Membre éclairé Avatar de MANU_2
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    417
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 417
    Par défaut
    Citation Envoyé par lil_jam63
    Citation Envoyé par MANU_2
    Ma solution :
    creer une autre liste déroulante invisble qui contient mes numéros et qui a le même index que dans l'autre liste déroulante.
    Ce n'est pas une solution mais du bricolage .
    La solution évoqué plus haut par Andry et Sylvain Leray sont bonne, c'est toi qui a du mal les implementer. donne nous ton code (la partie en question) on y verra plus clair sur ton histoire de problème de type et AddItem qui n'est pas reconnue.
    J'ai repris exactement le code de Sylvain et j'ai l'erreur suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    [Erreur] U_carnet.pas(337): Identificateur non déclaré : 'AddItem'
    Peut être qu'il faut ajouter un module (ou unité) mais lequel ?

    De plus, dans l'aide pour AddItem, j'ai ceci :
    The AddItem command instructs Program Manager to add an icon to an existing group. There is a limit of 50 items per group.
    Si j'ai bien compris, additem est limité et ça me plaît pas.

    Oui, ce que j'ai fait est du bricolage mais ça marche et c'est très simple.

  12. #12
    Membre éclairé Avatar de MANU_2
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    417
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 417
    Par défaut
    J'attend une solution a ce problème.

  13. #13
    Membre éprouvé
    Avatar de Andry
    Profil pro
    Informaticien
    Inscrit en
    Juillet 2002
    Messages
    1 164
    Détails du profil
    Informations personnelles :
    Localisation : Madagascar

    Informations professionnelles :
    Activité : Informaticien

    Informations forums :
    Inscription : Juillet 2002
    Messages : 1 164
    Par défaut
    Salut MANU,

    Quelle composant utilise tu : Combobox ou autres ?
    Sinon, utilise AddObject à la place de AddItem.

    A+

  14. #14
    Membre Expert
    Avatar de LadyWasky
    Femme Profil pro
    Inscrit en
    Juin 2004
    Messages
    2 932
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 54
    Localisation : France, Hauts de Seine (Île de France)

    Informations forums :
    Inscription : Juin 2004
    Messages : 2 932
    Par défaut
    Pourrais tu, s'il te plait donner une liste de Noms ou Mots que tu voudrait afficher avec le numéros qui correspondent à tes mots ?

    Est ce que ta liste de nom est triée par odre Alphabétique ? (J'imagine que oui)

    Est ce que tu veux qu'au premier Nom de ta Liste corresponde le nombre 1, puis au 2ème le nombre 2, etc... ou est ce que le nombre ne correspond pas à l'ordre de la liste ? Est-ce que ces numéro dépendent d'autre chose (longueur du Nom, etc...)


    Est-ce que ces Noms et ces numéros existent dans un tableau, un fichier texte ?

    Bref dis un peu plus précisemment ce que tu souhaite faire si tu veux être aidé, par ce que dans ton premier post tu n'as pas été assez explicite sur ce que tu souhaitez faire.

    Sinon, désolé de te le dire, mais tout ce qui t'a été indiqué ici peu te permettre de réaliser ce que tu veux faire.

    Enfin, où as tu été trouver cette aide sur AddItem ? Je n'ai jamais vu ça dans Delphi (Tu es bien sous Delphi, hein ? parce qu'en Pascal ce n'est pas pareil...)

    Sinon, si tu as mis une ComboBox sur ta Fiche, Delphi à automatiquement rajouté l'unité qu'il faut dans la clause Uses pour toi, donc...

  15. #15
    Membre éclairé Avatar de MANU_2
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    417
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 417
    Par défaut
    Ma liste déroulante de nom est dans une combobox.

  16. #16
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    128
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 128
    Par défaut
    Moi je fait comme ca:
    Je déclare un objet:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
      TPersonne = class(TObject)
        Nombre :integer;
        end;
    Après dans mon code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    var membre : Tpersonne; 
     
    for i:=0 to nb_personne
    do begin 
                membre:=TPersonne.Create();
                membre.Nombre:=.....; 
                Combobox1.Items.AddObject(NomDeLaPersonne,membre);
         end;
    Comme ca je rajoute à ma Combobox un item qui apparaitra sous le nom de NomDeLaPersonne et qui aura un objet de type Tpersonne rattaché.

    Après pour récuperer cette objet tu fait un truc du genre:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    buffer:=Combobox1.Items.Objects[i] As TPersonne;
    J'espère que ca pourra t'aider.
    Bonne prog

    Vince

  17. #17
    Membre éclairé Avatar de MANU_2
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    417
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 417
    Par défaut
    Citation Envoyé par waskol
    Pourrais tu, s'il te plait donner une liste de Noms ou Mots que tu voudrait afficher avec le numéros qui correspondent à tes mots ?

    Est ce que ta liste de nom est triée par odre Alphabétique ? (J'imagine que oui)

    Est ce que tu veux qu'au premier Nom de ta Liste corresponde le nombre 1, puis au 2ème le nombre 2, etc... ou est ce que le nombre ne correspond pas à l'ordre de la liste ? Est-ce que ces numéro dépendent d'autre chose (longueur du Nom, etc...)


    Est-ce que ces Noms et ces numéros existent dans un tableau, un fichier texte ?

    Bref dis un peu plus précisemment ce que tu souhaite faire si tu veux être aidé, par ce que dans ton premier post tu n'as pas été assez explicite sur ce que tu souhaitez faire.

    Sinon, désolé de te le dire, mais tout ce qui t'a été indiqué ici peu te permettre de réaliser ce que tu veux faire.

    Dans une table, j'ai plusieurs champs dont Id_pers, Nom, Prenom, ...
    Dans un combobox, j'affiche ma liste de nom & prenom triée.
    Et je voudrais stocker l'id_pers (qui peut être 5, 6, 9, 100, 1, 4, ...) pour le retrouver très facilement.

    Les solutions proposé me génèrent des erreurs.
    Moi, j'ai trouvé une solution mais on me dit que c'est du bricolage.
    Donc j'attend une solution efficace, simple et qui marche.



    Enfin, où as tu été trouver cette aide sur AddItem ? Je n'ai jamais vu ça dans Delphi (Tu es bien sous Delphi, hein ? parce qu'en Pascal ce n'est pas pareil...)
    Oui, je suis sous Dephi professionnel 5.0 et l'aide sur AddItem, je l'ai trouvé en appuyant sur F1.

  18. #18
    Membre éprouvé
    Avatar de Andry
    Profil pro
    Informaticien
    Inscrit en
    Juillet 2002
    Messages
    1 164
    Détails du profil
    Informations personnelles :
    Localisation : Madagascar

    Informations professionnelles :
    Activité : Informaticien

    Informations forums :
    Inscription : Juillet 2002
    Messages : 1 164
    Par défaut
    La c'est clair comme de l'eau.
    Voila ce que j'utilise actuellement :
    Ceci est une methode de ma classe
    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
     
    procedure TAUserType.ListTo(Itm: TStrings);
    begin
      With TIBQuery.Create(Nil) do
      try
        Database        := IBDatabase;
        Transaction     := IBTransaction;
        Itm.Clear;
        SQL.Text        := 'SELECT TUS_NO,TUS_DESC FROM TTYPEUSER_LOAD(Null)';
        Itm.Clear;
        Open;
        While not eof do
        begin
          Itm.AddObject(FieldByName('TUS_DESC').AsString,Pointer(FieldByName('TUS_NO').AsInteger));
          Next
        end;
      finally
        Free;
      end;
    end;
    J'utilise juste comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    TypeUser.ListTo(Combo_user.Items);
    Sinon pour recuperer le TUS_NO correspondant au TUS_DESc selectionné dans le combo je fais comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
        TypeNo   := Integer(Combo_user.Items.Objects[Combo_user.ItemIndex])
    Le problème peut se situer sur la version de Delphi, moi c'est la 7 pro.

    Courage

  19. #19
    Membre Expert
    Avatar de LadyWasky
    Femme Profil pro
    Inscrit en
    Juin 2004
    Messages
    2 932
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 54
    Localisation : France, Hauts de Seine (Île de France)

    Informations forums :
    Inscription : Juin 2004
    Messages : 2 932
    Par défaut
    Super, là ça devient clair :

    1) Voici une unté toute faite, tout spécialement pour toi, à ajouter à ton projet :
    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
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
     
    unit Unit2;
     
    interface
    uses Classes,StdCtrls;
     
    type
    TListeID=class
         private
           AStringList:TStringList;
           FComboBox: TComboBox;
           procedure SetComboBox(const Value: TComboBox);
         public
           constructor Create;
           destructor Destroy;
           procedure Clear;
           procedure UpdateComboBox;
           procedure Add(NomPrenom:string;Id_pers:Integer);
           procedure Delete(NomPrenom:string);
           function GetId_pers(NomPrenom:string):Integer;
           function GetId_persFromCombobox:Integer;
           property ComboBox:TComboBox read FComboBox write SetComboBox;
         end;
     
    implementation
    uses SysUtils;
    { TListeID }
    constructor TListeID.Create;
    begin
      AStringList:=TStringList.Create;
      AStringList.Sorted:=True;
      FComboBox:=nil;
    end;
     
    destructor TListeID.Destroy;
    begin
      AStringList.Free;
      FComboBox:=nil;
    end;
     
    procedure TListeID.Add(NomPrenom: string; Id_pers: Integer);
    begin
      AStringList.Add(NomPrenom+'='+IntToStr(Id_pers));
    end;
     
    function TListeID.GetId_pers(NomPrenom: string): Integer;
    begin
      result:=StrToInt(AStringList.Values[NomPrenom]);
    end;
     
    procedure TListeID.SetComboBox(const Value: TComboBox);
    begin
      FComboBox := Value;
    end;
     
    procedure TListeID.Delete(NomPrenom: string);
    var Index:Integer;
    begin
      Index:=AStringList.IndexOfName(NomPrenom);
      if Index<>-1 then
      AStringList.Delete(Index);
    end;
     
    procedure TListeID.UpdateComboBox;
    var i:Integer;
    begin
      if Assigned(FComboBox) then
      begin
        FComboBox.Clear;
        for i:=0 to AStringList.Count-1 do
           FComboBox.Items.Add(AStringList.Names[i]);
      end;
    end;
     
    function TListeID.GetId_persFromCombobox: Integer;
    begin
      if Assigned(FComboBox) then
      result:=GetId_pers(FComboBox.Text);
    end;
     
    procedure TListeID.Clear;
    begin
      AStringList.Clear;
    end;
     
    end.
    2) Voici un exemple composé d'une fiche sur laquelle j'ai mis une ComboBox et un Label
    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
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
     
    unit Unit1;
     
    interface
     
    uses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, StdCtrls,Unit2;
     
    type
      TForm1 = class(TForm)
        ComboBox1: TComboBox;
        Label1: TLabel;
        procedure FormCreate(Sender: TObject);
        procedure FormDestroy(Sender: TObject);
        procedure ComboBox1Change(Sender: TObject);
      private
        { Déclarations privées }
        AListeID:TListeID;
      public
        { Déclarations publiques }
      end;
     
     
     
    var
      Form1: TForm1;
     
    implementation
     
    {$R *.dfm}
     
    procedure TForm1.FormCreate(Sender: TObject);
    begin
      //Creation de AListeID (A mettre dans le Oncreate)
      AListeID:=TListeID.Create;
      AListeID.ComboBox:=ComboBox1; //<--Dire avec quelle ComboBox on travaille
     
      //Remplissage de la liste (ça peut se trouver ailleurs)
      AListeID.Clear; //On vide la liste
      AListeID.Add('Stiqué Sophie',100);
      AListeID.Add('Némar Jean',8);
      AListeID.Add('Célère Jacques',51);
     
      //Remplir la combobox
      AListeID.UpdateComboBox;
    end;
     
    procedure TForm1.FormDestroy(Sender: TObject);
    begin
      AListeID.Free;
    end;
     
    procedure TForm1.ComboBox1Change(Sender: TObject);
    begin
      //On récupère l'ID pour l'afficher dans un label
      Label1.Caption:=IntToStr(AListeID.GetId_persFromCombobox);
    end;
     
    end.

  20. #20
    DMO
    DMO est déconnecté
    Membre chevronné
    Avatar de DMO
    Profil pro
    Inscrit en
    Février 2004
    Messages
    290
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 290
    Par défaut
    Les solutions proposées semblent répondre parfaitement à ta question MANU_2.

    Je réagis simplement à l'affirmation suivante :
    Citation Envoyé par MANU_2
    Dans une table, j'ai plusieurs champs dont Id_pers, Nom, Prenom, ...
    J'attire ton attention sur le fait que pour gérer des données que tu as dans un dataset, il vaut mieux utiliser des composants orientés données. Le choix du combobox n'est donc selon moi bien pas judicieux...

    Je suggère alors :
    • Si tu veux sélectionner une personne, pour mettre le ID choisi dans une autre table, utilise un TDBLookUpComboBox.
    • Si tu veux une simple sélection de personne et c'est tout, il n'y a pas à ma connaissance de composant (ressemblant à un combobox) pour cela nativement dans delphi (6 en tous cas). Par contre la JVCL en fournit qui fonctionnent parfaitement. Je t'oriente donc par exemple vers un TJvDBSearchComboBox

    Dans le 2e cas, par exemple, lorsque la sélection est effectuée dans le TJvDBSearchComboBox, le curseur du dataset est déplacé. Tu affiche donc le champ que tu veux, mais tu as toujours la possibilité de lire ton champ ID courant. En plus question lignes de code, on tend vers 0, ce qui est je crois l'idéal.

    Bon dev'

    a+

Discussions similaires

  1. Association d'une liste déroulante à un propertydescriptor
    Par marwaa dans le forum Windows Forms
    Réponses: 0
    Dernier message: 10/03/2009, 18h54
  2. Association d'une liste en many to many
    Par Alec6 dans le forum Hibernate
    Réponses: 1
    Dernier message: 07/02/2008, 17h13
  3. Réponses: 5
    Dernier message: 06/05/2007, 18h29
  4. Réponses: 3
    Dernier message: 17/08/2006, 11h30

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