TTC7AutoStart ist von TObjectList abgeleitet und die Eigenschaft OwnsObjects ist True (Standardbelegung).
Alle Objekte die der Liste hinzugefügt werden, werden von dieser auch freigegeben.
EncyclopediaInfo := TTC7EncyclopediaData.Create;
Wer ist aber verantwortlich "EncyclopediaInfo" freizugeben?
Scheinbar doch die Instanz der Klasse TTC7AutoStartStruc und dafür benötigt diese einen
destructor.
Das setzen von definierten Vorbelegungen der Felder ist auch Aufgabe der Klasse selbst, dafür schreibt man einen
constructor.
Delphi-Quellcode:
type
TTC7EncyclopediaData = class(TObject)
constructor Create;
{.. Felder ..}
end;
TTC7AutoStartStruc = class(TObject)
constructor Create;
destructor Destroy; override;
{.. Felder ..}
end;
constructor TTC7AutoStartStruc.Create;
begin
inherited;
PrimaryID := '';
SecondIDList := '';
{... usw ...}
end;
constructor TTC7AutoStartStruc.Create;
begin
inherited;
{eigene Objekte erzeugen}
EncyclopediaInfo := TTC7EncyclopediaData.Create;
{Felder vorbelegen}
Index := -1;
EntryType := asUndefined;
{... usw ...}
end;
destructor TTC7AutoStartStruc.Destroy;
begin
{eigene Objekte freigeben}
EncyclopediaInfo.Free;
inherited;
end;