Einzelnen Beitrag anzeigen

Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#4

AW: Lazarus, Problem mit TMemoryStream

  Alt 1. Sep 2014, 00:41
Dann schau doch mal nach, was Assigned macht.

Assigned prüft lediglich, ob die Referenz-Variable den Wert nil hat.
Aus, basta, fertig.
Delphi-Quellcode:
function Assigned( Obj : TObject ) : Boolen;
begin
  Result := Obj <> nil;
end;
Steht da etwas anderes drin als nil , dann liefert Assigned true zurück.

Es wird nicht geprüft, ob an der angegebenen Referenz eine gültige Instanz ist!

Setze einfach nach dem Free den Wert der Referenz-Variablen auf nil und schon kannst du problemlos mit Assigned prüfen.

Du kannst dafür auch FreeAndNil benutzen, das wie folgt arbeitet:
Delphi-Quellcode:
procedure FreeAndNil( var Obj : TObject );
begin
  Obj.Free;
  Obj := nil;
end;
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)

Geändert von Sir Rufo ( 1. Sep 2014 um 00:46 Uhr)
  Mit Zitat antworten Zitat