[Delphi] Pb : TComboBox et AddObject
PhP
Messages postés
1770
Date d'inscription
Statut
Membre
Dernière intervention
-
PhP Messages postés 1770 Date d'inscription Statut Membre Dernière intervention -
PhP Messages postés 1770 Date d'inscription Statut Membre Dernière intervention -
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 ]]
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:
- [Delphi] Pb : TComboBox et AddObject
- Delphi 7 - Télécharger - Langages
- Bde delphi - Télécharger - Édition & Programmation
- Delphi 7 serial number - Forum Delphi
- Delphi ds150e reprogrammation moteur pdf ✓ - Forum Delphi
- Main.exe delphi - Forum Linux / Unix
1 réponse
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 ]]
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 ]]