Try This

[pascal]procedure FreeAndNil(var Obj);
var
Temp: TObject;
begin
Temp := TObject(Obj);
Pointer(Obj) := nil;
Temp.Free;
end;[/pascal]


Its the wat FreeAndNil is defined.