Forum: Object-Pascal / Delphi-Language
Delphi
by shmia,
23. Jun 2009
Ja schon, aber schau mal du hast jetzt das Reservieren von Speicher und das Freigeben an zwei unterschiedlichen Stellen.
Es geht die Checklistbox doch gar nix an, was in Items.Objects gespeichert ist.
Wenn du 4 Checklistboxen auf diese Weise benützt, dann steht halt im OnDestroy ungefähr das:
procedure TForm1.FormDestroy(Sender:TObject);
begin
DisposeTStrings(Checklistbox1.Items);
...
Forum: Object-Pascal / Delphi-Language
Delphi
by shmia,
22. Jun 2009
1. )
Wenn du den Speicherplatz für den Record mit new angelegt hast, dann musst du ihn auch per dispose freigeben.
FreAndNil ist nur bei Objekten erlaubt.
2.)
Ich würde nicht TCheckListBox ableiten sondern das Freigeben im Event OnDestroy des Formulars ausführen:
procedure DisposeTStrings(sl: TStrings);
var
i: Integer;
p :Pointer;
begin