Zitat von
jfheins:
Schon - aber Free testet ungefähr so:
Delphi-Quellcode:
procedure Free
begin
if Self <> nil then
Destroy;
end;
Hilft auch nicht immer:
Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
var
X: TObject;
// aus SysUtils.pas
procedure FreeAndNil(var Obj);
var
Temp: TObject;
begin
Temp := TObject(Obj);
Pointer(Obj) := nil;
Temp.Free;
end;
begin
FreeAndNil(X)
end;
wirft eine 'Externe
Exception C00001D' (in D6, und etwas ähnliches in D2009).
Warnungen oder Hinweise wegen der nicht initialisierten Variable X gibt es keine - da muss man halt aufpassen