Einzelnen Beitrag anzeigen

Basilikum

Registriert seit: 9. Aug 2003
389 Beiträge
 
Delphi 7 Professional
 
#7

Re: [Artikel]TPersistent is im Stream

  Alt 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;
  Mit Zitat antworten Zitat