![]() |
Objekt duplizieren.
Hi Ich hab ein kleines Problem.
Ich hab ein Panel wo eine Listbox und ein TextLabel drin hab. Diese will ich ca 20 mal auf meinem Fenster ausgeben, aber will sie nicht 20 mal erstellen. Nun will ich sie am besten in einer Schleife ausgeben, Ich hab schon versucht das objekt in eine array zu quetschen ging aber leider nicht oder es hat immer nur das erste objekt verändert. Pls Help |
Re: Objekt duplizieren.
das geht aber nicht anders:
entweder 20mal erstellen oder 1mal erstellen und das 19mal clonen ersteres ist leichter da es für das clonen keine funktion gibt |
Re: Objekt duplizieren.
wenn ich das klone kann ich dann immernoch von jedem die eigenschaften individuell verändern ?
|
Re: Objekt duplizieren.
Zitat:
|
Re: Objekt duplizieren.
Moin Matthias,
Zitat:
Probier das hier mal aus:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var i : integer; begin for i := 1 to 10 do begin with TLabel.Create(self) do begin Top := (i-1) * 16+8; Caption := 'Label'+IntToStr(i); Parent := self; ShowMessage(Name); end; end; end; |
Re: Objekt duplizieren.
Ich danke dir.
Ich wär fast selber drauf gekommmen, aber ich wusste nicht das bei Create() self rein kommen muss. Also vielen dank!!! |
Re: Objekt duplizieren.
Moin XzenTorXz,
wenn Du im Create einen Owner angibst, also einen Wert <> nil, dann hast Du den Vorteil, dass Du Dich nicht selber um die Freigabe kümmern musst. Das geschieht dann automatisch, wenn der Owner freigegeben wird. Du musst auch nicht zwingend self dort eintragen, auch wenn es wohl meist so gemacht wird. Trägst Du hingegen nil ein, musst Du Dich selber darum kümmern, dass das erzeugte Objekt wieder freigegeben wird. [EDIT] BTW: Du solltest auf jeden Fall, wie Matze es angedeutet hat, einen eindeutigen Namen vergeben, um die Komponente dann auch wieder gezielt ansprechen zu können. Eine andere Variante wäre es die Objekte ein Liste aufzunehmen, um den späteren Zugriff wieder zu ermöglichen. Am ehesten kommt hier wohl ein ![]() [/EDIT] |
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:19 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz