Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Objekt duplizieren. (https://www.delphipraxis.net/72388-objekt-duplizieren.html)

XzenTorXz 29. Jun 2006 16:09


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

bttb930 29. Jun 2006 16:18

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

XzenTorXz 29. Jun 2006 16:27

Re: Objekt duplizieren.
 
wenn ich das klone kann ich dann immernoch von jedem die eigenschaften individuell verändern ?

Matze 29. Jun 2006 16:33

Re: Objekt duplizieren.
 
Zitat:

Zitat von XzenTorXz
wenn ich das klone kann ich dann immernoch von jedem die eigenschaften individuell verändern ?

Da jede Komponente einen eigenen Namen haben muss, kannst du sie generell darüber ansprechen.

Christian Seehase 29. Jun 2006 17:07

Re: Objekt duplizieren.
 
Moin Matthias,

Zitat:

Zitat von Matze
Da jede Komponente einen eigenen Namen haben muss,...

leider nicht, es geht nämlich auch völlig ohne Namen.
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;

XzenTorXz 29. Jun 2006 17:15

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!!!

Christian Seehase 29. Jun 2006 17:42

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 Hier im Forum suchenTObjectList in Frage.
[/EDIT]


Alle Zeitangaben in WEZ +1. Es ist jetzt 13:28 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