FreeAndNil比Free稍微安全一些,就是将对象清为nil。下面是FreeAndNil的代码:
procedure FreeAndNil(var Obj);
var
  Temp: TObject;
begin
  Temp := TObject(Obj);
  Pointer(Obj) := nil;
  Temp.Free;
end;
释放资源就用Free就可以了。