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:
Delphi-Quellcode:
procedure DisposeTStrings(sl: TStrings);
var
i: Integer;
p :Pointer;
begin
for i := sl.Count-1 downto 0 do
begin
p := Pointer(sl.Objects[i]);
if Assigned(p) then
begin
Dispose p;
sl.Objects[i] := nil; // kann man sich auch schenken, soll doppelte Freigabe verhindern
end;
end;
end;