Bonjour ,
J'ai un souci à propos de la destruction de plusieurs objets avec Delphi xe3. J'ai créé des tlabel dynamiquement dans une boucle selon les résultats de ma database
et le problème est que quand je veux changer de résultats il faut que je les supprime et crée de nouveaux label. Mais s'ils sont créés dynamiquement, ils n'existent pas dans la "form", vous voyez ... Comment les détruire après un changement de résultat ?
Voici mon code :
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 procedure TForm5.ComboBox1Change(Sender: TObject); var cat,tit:string; i,xxx,n:integer; begin self.RemoveComponent(tlabel); xxx:=85; n:=1; cat:=combobox1.Items.Text; self.ADOQuery1.Prepared:=true; self.ADOQuery1.SQL.Text:='select title form discution d inner join cathegorie c on d.id_cat=c.id_cat where'+cat+'=nom_cat'; self.ADOQuery1.ExecSQL; for i:=0 to self.ADOQuery1.DataSetField.FieldCount-1 do begin with tlabel.Create(self) do begin Parent :=self; caption:=self.ADOQuery1.Fields.DataSet.Fields.ToString; top:= xxx; left:=32; name:='lab'+ inttostr(n); end; self.ADOQuery1.Next; xxx:=xxx+10; n:=n+1; end;
Merci.
Partager