Moin bttb930,

Zitat von
bttb930:
Man muß beim Anwenden von Free gar nicht nachfragen ob die Variable zugewiesen ist oder nicht. Folgendes führt zu keinem Fehler:
Delphi-Quellcode:
sl := TStringList.Create;
sl.Free; // gibt die StringList frei. sl ist hinterher NICHT nil, sondern zeigt ins leere
sl.Free; // funktioniert trotzdem!
Das liegt daran, dass Free eine Klassenfunktion ist.
Free ist keine Klassenfunktion.
Es liegt daran, dass zwischen den Zugriffen der Speicher noch nicht anderweitig verwendet wurde, und somit noch das Objekt enthält.
Das Ganze kann nämlich auch ebensogut auf einen Fehler auflaufen.