Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi dynamisch erzeugtes Label löschen (https://www.delphipraxis.net/2206-dynamisch-erzeugtes-label-loeschen.html)

MadMason 12. Jan 2003 14:59


dynamisch erzeugtes Label löschen
 
hi
hab ein weiteres problem mit tlabel
nachdem ich die nun dynamisch erzeugt habe will ich sie auch irgendwann wieder löschen

ich vergebe jedem label einen namen der form:

lab_Nr

die Nr kann ich ermitteln, allerdings hab ich keine idee wie ich das label dann löschen kann.

Christian Seehase 12. Jan 2003 15:03

Moin MadMason,

je nachdem, wie Du sie erzeugt hast könnte

Delphi-Quellcode:
TLabel(FindComponent('lab_nr'+IntToStr(HierDieNummer))).Free;
funktionieren.

Hast Du beim Create einen Owner mit angegeben würde es auch genügen einfach visible auf false zu setzen. Dann sind sie wenigstens nicht mehr zu sehen, und werden beim löschen des Owners automatisch mit gelöscht.

MadMason 12. Jan 2003 17:51

danke das ist es
:dancer: :dancer2: :bouncing4: :bounce1: :bounce2:

MadMason 13. Jan 2003 17:50

hab doch noch ein problem:
wenn ich mit findcomponent nach einem label suche, dass ich bereits zur designzeit erstellt habe, funzt es

wenn ich aber ein dynamisch erzeugtes label nehme, dann funzt er es nicht

Delphi-Quellcode:
with TLabel.Create(GroupBox) do begin
 top:= 8;
 left:= 8;
 caption:= 'test';
 parent:= GroupBox;
 name:= 'ip_'+inttostr(getnumber(curr_addr) );
end;
Delphi-Quellcode:
TLabel(FindComponent('ip_'+inttostr(getnumber(s))).Free;
getnumber, curr_addr und s sind variablen bzw funktionen

sakura 13. Jan 2003 17:57

Der Owner ist nicht der Parent sondern das Form
Code:
with TLabel.Create([color=#ff0011]Self[/color]) do begin
[i][color=#4400ff]// oder[/color][/i]
with TLabel.Create([color=#ff0011]Form1[/color]) do begin
 top:= 8;
 left:= 8;
 caption:= 'test';
 parent:= GroupBox;
 name:= 'ip_'+inttostr(getnumber(curr_addr) );
end;

Christian Seehase 13. Jan 2003 18:50

Moin sakura,

wenn die Deklaration

TLabel.Create(GroupBox) lautet, muss nur der Aufruf von FindComponent geändert werden:

z.B.
Form1.Groupbox1.FindComponent(...


;-)

sakura 13. Jan 2003 18:54

Hi Christian,

das ist mir schon klar, aber ich persönlich bevorzuge die Delphi Methode alles über das Form zu initialisieren :D


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:47 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz