Forum: Object-Pascal / Delphi-Language
by himitsu,
16. Jun 2020
Da außen die Variable NIL werden soll, das aber beim Property "Objects" nicht geht, macht es sich mit "einer" Funktion nicht so gut.
procedure FreeStringList(const List: TStrings);
procedure Walk(Obj: TObject);
begin
if Obj is TStrings then
for var Obj2 in TStrings(Obj).ToObjectArray do
Walk(Obj2);
Obj.Free;
end;
Forum: Object-Pascal / Delphi-Language
by himitsu,
15. Jun 2020
Wenn man nur mit TComponents arbeitet, dann kann man deren Notifications benutzen.
Da können sich Andere bei der Klasse registrieren und werden informiert, wenn die Komponente freigegeben wird, um die Referenz bei sich zu entfernen.
z.B. TEdit<->TDataSource<->TDataSet oder TButton<->TImageList/TPopup, ....
Man löscht die ImageList und das Property in der anderen Komponente wird NIL.
Es...