Einzelnen Beitrag anzeigen

shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#2

Re: TCheckListbox Auto-Destroy Objects

  Alt 22. Jun 2009, 11:04
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;
Andreas
  Mit Zitat antworten Zitat