[Delphi] Pb : TComboBox et AddObject

Fermé
PhP Messages postés 1770 Date d'inscription lundi 11 décembre 2000 Statut Membre Dernière intervention 23 décembre 2009 - 26 mars 2003 à 18:36
PhP Messages postés 1770 Date d'inscription lundi 11 décembre 2000 Statut Membre Dernière intervention 23 décembre 2009 - 26 mars 2003 à 18:45
Bsr à toutes et à tous,

Sous Delphi j'utilise un TComboBox pour stoquer une liste de libellés (des noms d'équipe).
A chaque équipe est associé un NR que je stocke dans un objet de type TEquipe.
Pour simplifier j'ai résumé à 2 équipes "codées en dur" mais en réalité je charge la liste à partir d'une requête SQL.


Voici le code :



unit Test;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;

type
TEquipe = class(TObject)
Equipe : string;
end;

TForm1 = class(TForm)
ComboBoxEquipe: TComboBox;
procedure FormActivate(Sender: TObject);
procedure ComboBoxEquipeClick(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
private
{ Déclarations privées }
public
{ Déclarations publiques }
end;

var
Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.FormActivate(Sender: TObject);
var
Eqp : TEquipe;
begin
Eqp := TEquipe.Create();
Eqp.Equipe :='01';
ComboBoxEquipe.Items.AddObject('Equipe A',TObject(Eqp));

Eqp := TEquipe.Create();
Eqp.Equipe :='02';
ComboBoxEquipe.Items.AddObject('Equipe B',TObject(Eqp));

end;

procedure TForm1.ComboBoxEquipeClick(Sender: TObject);
var
Eqp : TEquipe;
begin
Eqp := TEquipe(ComboBoxEquipe.Items.Objects[ComboBoxEquipe.ItemIndex]);
showmessage(Eqp.Equipe);
end;

procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
var
i : integer;
begin
for i:=0 to ComboBoxEquipe.Items.Count-1 do
begin
ComboBoxEquipe.Items.Objects[i].Free;
end;
end;

end.





Je supprime les objets de type TEquipe lors de la fermeture de la fenêtre.
Est-ce conseillé ou suis-obligé de créer un nouveau composant à partir d'un TComboBox et de surcharger sa méthode Destroy ?

Que se passe-t-il si je ne fais pas de .Free du tout ? Delphi fait-il le ménage à ma place ?

Un ex serait le bien venu je ne vous le cache pas ...


Merci d'avance :-)

@+
Php
[[  The Truth is Out There   ]]
A voir également:

1 réponse

PhP Messages postés 1770 Date d'inscription lundi 11 décembre 2000 Statut Membre Dernière intervention 23 décembre 2009 606
26 mars 2003 à 18:45
Remoi

Complément : tjrs pour mon pb, existe-t-il un moyen de spécifier ma ComboBox ComboBoxEquipe comme Owner de tous les objets TEquipe créés ?
Dans ce cas ils seraient automatiquement supprimés lors de la suppression de la combobox en question non ?

Encore merci

@+
Php


[[  The Truth is Out There   ]]
0