Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
Delphi 10 Seattle Enterprise
|
AW: Resource wird nicht gefunden
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)
|