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: Resource wird nicht gefunden

  Alt 1. Apr 2016, 20:43
  • Die Instanz wird nicht erzeugt, wenn im constructor eine Exception kommt.
  • Die Instanzvariable ist eine lokale Variable und somit nicht initialisiert => da steht irgendwas drin.
  • Assigned liefert true wenn in der Instanzvariable irgendwas drin ist <> nil
  • TObject.Free prüft selber auch noch mal ob <> nil
  • Es kann nicht festgestellt werden, ob die Instanzreferenz auf irgendeine Grütze oder eine intakte Instanz zeigt
  • Zeigt die Referenz auf Grütze, dann knallt es
Darum lautet das Pattern auch so
Delphi-Quellcode:
procedure bar;
var
  foo: TObject;
begin
  foo := TObject.Create;
  try
    ...
  finally
    foo.Free;
  end;
end;
oder
Delphi-Quellcode:
procedure bar;
var
  foo: TObject;
begin
  foo := nil;
  try
    foo := TObject.Create;

    ...
  finally
    foo.Free;
  end;
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. Apr 2016 um 20:45 Uhr)
  Mit Zitat antworten Zitat