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
FreeAndNil. 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]