Hallo Zusammen,
vielen Dank für die vielen guten Anregungen. Ich habe zuvor noch nie mit einer TObjectList gearbeitet und habe daher davon keine wirkliche Ahnung.
Ich habe gerade versucht Generics.Collections in meine uses einzufügen. Ich habe noch nicht erwähnt, dass ich das Projekt gerade als Web-Application mit TMS-WebCore umsetzen möchte. Da scheinen die Generics.Collections nicht unterstützt zu werden. Der Compiler meckert:
Zitat:
[Fehler] TDesignUnit.pas(5): can't find
unit "Generics.Collections"
Der Gedanke war folgender:
Ich schreibe ein Programm, dass auf unterschiedlichen Forms immer wieder diese Art von Buttons haben wird (TTMSFNCToolBarButton) Ich möchte die Captions aus einer
DB-Tabelle befüllen. Dazu möchte ich in der Design-klasse, eine eigene
Unit, eine Procedure schreiben, der ich bei Bedarf diese Buttons übergebe, das entsprechende Design vornehme (hier gerade nur das Caption, später aber auch noch andere Einstellungen) und dann die Liste wieder freigebe.
Delphi-Quellcode:
procedure TDesign.Design_LogIn;
var
BList: TObjectList<TTMSFNCToolBarButton>; // Ist das generisch? Das akzeptiert der Compiler nicht...
begin
BList:= TOBjectList.Create;
Try
BList.Add(Form_LogIn.btn_login_abbruch);
BList.Add(Form_LogIn.btn_login_ok);
Labeling_GlowButtons(BList); //Wenn hier die Design-Arbeiten abgeschlossen sind, brauche ich die Liste nicht mehr.
Finally
BList:= nil; // Wenn ich free genommen habe, waren die Buttons zur Laufzeit von dem Form entfernt...
End;
end;
Was bewirkt
BList.OwnsObjects:= False
? Ziehe die Frage zurück...
Zitat:
OwnsObjects gets or sets whether objects in the list are owned by the list or not. If entries are owned, when an entry object is removed from the list, the entry object is freed. Create initializes this property.
Was mache ich bei der Nutzung einer TObjectList falsch?
Wie löst man denn so eine Aufgabe elleganter?
Vielen Dank für Eure Unterstützung!
Patrick