Registriert seit: 9. Aug 2003
389 Beiträge
Delphi 7 Professional
|
Re: [Artikel]TPersistent is im Stream
2. Jul 2007, 07:45
Zitat von Ghostwalker:
Leider nicht, die Abfrage ist (zumindest unter Turbo Delphi) manchmal notwendig. Ich hatte schon ein paar mal den Fall, das er in den Finally-Block ging, ohne einen gültigen Zeiger auf das Objekt zu haben, was dann zu einem netten Crash führte. Dummerweise tritt das nur sporadisch auf.
Ein free würde sicher ausreichen, FreeAndNil ist bei mir zur Gewohnheit geworden Aber darum gehts ja auch garnicht.
ich würde das mit dem Try-Finally so schreiben:
Delphi-Quellcode:
begin
result := FALSE;
writer := TWriterEx.Create(AStream,1024); // wenn es hier schon kracht, gibts noch nichts zum Aufräumen
try
Writer.SaveProperties(AObject);
writer.FlushBuffer;
result := TRUE;
finally
freeandnil(writer); // hier gibt es jedoch sicher etwas zum Aufräumen
end;
end;
|
|
Zitat
|