Thema: Delphi Objekte freigeben

Einzelnen Beitrag anzeigen

mjustin

Registriert seit: 14. Apr 2008
3.005 Beiträge
 
Delphi 2009 Professional
 
#10

Re: Objekte freigeben

  Alt 25. Feb 2009, 17:43
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
Michael Justin
habarisoft.com
  Mit Zitat antworten Zitat