Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre questionunit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ComCtrls, StdCtrls; type TForm1 = class (TForm) edFirstName: TEdit; edLastName: TEdit; btnAdd: TButton; cbxUserData: TComboBox; dtpBirthDate: TDateTimePicker; procedure btnAddClick(Sender: TObject); procedure cbxUserDataChange(Sender: TObject); procedure FormDestroy(Sender: TObject); private public end; var Form1: TForm1; implementation {$R *.dfm} type {Déclaration d'un classe "helper" facilitant la mémorisation des données dasn la liste déroulante} TUserData = class public Firstname: string; LastName: string; BirthDate: TDate; end; procedure TForm1.btnAddClick(Sender: TObject); var UserData: TUserData; begin //Création d'un objet TUserData UserData := TUserData.Create; {On renseigne ses champs avec les valeurs saisies à l'écran} UserData.Firstname := edFirstName.Text; UserData.LastName := edLastName.Text; UserData.BirthDate := dtpBirthDate.Date; {Ajout de l'objet à la liste} cbxUserData.Items.AddObject(edLastName.Text, UserData); {L'item actif de la liste est celui qu'on vient d'ajouter} cbxUserData.ItemIndex := cbxUserData.Items.Count - 1; end ; procedure TForm1.cbxUserDataChange(Sender: TObject); var UserData: TUserData; begin {On s'assure d'abord qu'un élément est sélectionné !} if cbxUserData.ItemIndex <> -1then begin {On récupère l'élément TUserData actuellement sélectionné} UserData : = cbxUserData.Items.Objects[cbxUserData.ItemIndex] as TUserData; {On affiche les valeurs de l'élément TUserData actuellement sélectionné} edFirstName.Text := UserData.Firstname; edLastName.Text := UserData.LastName; dtpBirthDate.Date := UserData.BirthDate; end ; end; procedure TForm1.FormDestroy(Sender: TObject); var i: integer; begin {NE PAS OUBLIER de libérer les objets pointés par la liste !!! Ici, on détruit du dernier au premier :} for i : = cbxUserData.Items.Count - 1 downto 0 do cbxUserData.Items.Objects[i].Free; end; end.C'est un peu plus propre.