Einzelnen Beitrag anzeigen

Benutzerbild von Khabarakh
Khabarakh

Registriert seit: 18. Aug 2004
Ort: Brackenheim VS08 Pro
2.876 Beiträge
 
#3

Re: Problem bei TStringlist Freigabe

  Alt 20. Dez 2005, 15:14
Zitat:
Ich ein Grundobjekt.


An deinem Code kann ich keinen Fehler erkennen. Es gibt die Möglichkeit, dass du erstens irgendwo anders den Speicherbereich der ersten StringList (wahrscheinlich bezieht sich die Fehlermeldung auf die Zeile über dem Cursor) überschreibst oder - zweitens - MakeFree mehrmals aufrufst, das wäre natürlich fatal. Für 1. solltest du die Bereichsprüfung aktivieren, dann kann schonmal nicht mehr so viel schiefgehen. Für 2. reicht es, wenn du einen Breakpoint auf die erste Zeile der Routine setzt und die Vermutung überprüfst. Verhindern kannst du das Problem mit Delphi-Referenz durchsuchenFreeAndNil. Gibt es eigentlich einen Grund, dass du nicht einfach Kon- und Destruktor statt Init und MakeFree benutzt?

[add]Pff, ich schreibe zu langsam .
Zitat:
Delphi-Quellcode:
if Assigned(Stringlist) then
 FreeAndNil(StringList);//Oder StringList.Free;
Mit FreeAndNil reicht schon
FreeAndNil(StringList); Das Assigned ist überflüssig, da es schon in TObject.Free überprüft wird.
Und
Delphi-Quellcode:
// "Oder"-Teil
if Assigned(Stringlist) then
 StringList.Free;
wird nie funktionieren.[/quote]
Sebastian
Moderator in der EE
  Mit Zitat antworten Zitat