![]() |
AW: Object dynamisch in einem Array erzeufen
@Jens01: Das hab ich auch schon festgestellt.
@alle: Diese Art des Templates ist leider nicht auf meinem Mist gewachsen. Ich hab das Ganze nur leicht abgewandelt. @gangs-taas: Zitat:
![]() Mehr Hilfe als in Posting 13 kann ich kaum geben, aber ich versuchs mal: Hier der ENTSCHEIDENDE Teil:
Delphi-Quellcode:
Alle entscheidenden Teile hab ich mit /// /// X. Anpassung bzw. /// /// siehe X. Anpassung markiert / zusätzlich kommentiert.
unit u_FilterItemList; /// /// 1. Anpassung ////// HIER ein sinnvoller Name für die Unit
interface uses Classes, // Unit mit Klasse für _ITEM_TYPE_ (eine ganz normale Klasse) u_FilterItem; /// /// 2. Anpassung ////// HIER die Unit in dem das Objekt steht das die Liste soll // Kompilerdirektive für das Template {$DEFINE LIST_TEMPLATE_} type // Vorfahr der "Listklasse" _LIST_ANCESTOR_ = TObject; // Vorfahr der "Kontainerklasse", sollte ein Nachfahr von TList sein _LIST_CONTAINER_ = TList; // Typ des Items in der "Kontainerklasse" (z.B.: Pointer für TList, IInterface für TInterfaceList} _LIST_CONTAINER_ITEM_TYPE_ = pointer; // Item der typisierten Klasse, dieser Typ wird von der Klasse ausgegeben _ITEM_TYPE_ = TFilterItem; /// /// 3. Anpassung ////// HIER das Objekt das aus der Unit (siehe 2. Anpassung) in die Liste soll // Verzeichnis: \Delphi\Komponenten\Templates nicht in Umgebungsvariablen vorhanden daher so: // 1. Template-aufruf: erstellt den Kopf der _LIST_TEMPLATE_ Klasse anhand der oben gemachten Angaben {$INCLUDE '..\Templates\t_TypedObjectList.pas'} /// /// 4. Anpassung ////// HIER den Pfad anpassen wenn das Template wo anders ist type // "Umbenennung" von _LIST_TEMPLATE_ und weitere spezielle Eigenschaften für die Klasse TFilterItemList = class(_LIST_TEMPLATE_) /// /// 5. Anpassung ////// HIER der ListenKlasse deinen Namen geben protected // muss implementiert werden, falls die Items freigegeben werden müssen (destructor Aufruf) procedure FreeItem(_Item: _ITEM_TYPE_); override; end; implementation // 2. Template-aufruf: implementiert die _LIST_TEMPLATE_ Klasse anhand der oben gemachten Angaben {$INCLUDE '..\Templates\t_TypedObjectList.pas'} /// /// siehe 4. Anpassung // Implementierung der speziellen Eigenschaften der Klasse { TFilterItemList } /// /// siehe 5. Anpassung procedure TFilterItemList.FreeItem(_Item: _ITEM_TYPE_); /// /// siehe 5. Anpassung begin _Item.Free; inherited; end; end. |
AW: Object dynamisch in einem Array erzeufen
Zitat:
aber ich ziehe eine einfach lösung, die ich versteh, einer komplizierten, die ich per copy&past benutzen kann, vor sorry wenn das hier auf unverständnis trifft euch übrigen danke nochmal @ David Martens : danke ich glaub langsamm versteh ich es (zwar nicht alles & nicht warum) aber ich denk, ich kann esn utzen ... danke |
AW: Object dynamisch in einem Array erzeufen
@gangs-taas: Du mußt es ja auch nicht alles verstehen, nur die entscheidenden Stellen ändern :-D
|
AW: Object dynamisch in einem Array erzeufen
Nee, sorry, da hast Du mich falsch verstanden!
Ich meinte das so, dass Du hier mit komplexen Lösungen bombardiert wirst. Ich hätte da als Anfänger schon aufgegegeben. M.E. ist halt TObjectList mit einem TypeCast die einfachste und übersichtlichste Lösung. Also ich meinte letztlich genau das: Zitat:
|
AW: Object dynamisch in einem Array erzeufen
Zitat:
probier ich morgne heute ist zu spät um vernünftig zu denken und zu ändern :D gute nacht ps Zitat:
sorry ich hatte dich echt falsch verstanden ja mir schwirrt der kopf :D aber scheinbar muss man es nicht alles verstehn :D ich versuchs morgne in ruhe nachzuvollziehen ... danke für eure hilfe |
AW: Object dynamisch in einem Array erzeufen
Wo wird hier was der Liste hinzugefügt:
Delphi-Quellcode:
// dynamisch Komponenten erzeugen und in die Liste packen
for i := 0 to 10 do begin lbl := TLabel.Create(FMyList {<==}); lbl.Caption := Format('Label %d',[i]); lbl.Top := i * 15; lbl.Left := i * 9; lbl.Parent := Self; end; |
AW: Object dynamisch in einem Array erzeufen
Zitat:
Gruß schlecki [edit]wurde aber auch schon in ![]() |
AW: Object dynamisch in einem Array erzeufen
Wird da nicht nur der Besitzer gesetzt?
|
AW: Object dynamisch in einem Array erzeufen
Das wurde doch schon in
![]() |
AW: Object dynamisch in einem Array erzeufen
Das ist der Schlüsselsatz:
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:10 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