ksObjUtils.pas 477 B

1234567891011121314151617181920212223242526272829
  1. unit ksObjUtils;
  2. interface
  3. //take from qdac (Thanks for swish)
  4. procedure FreeObject(AObject: TObject);
  5. procedure FreeAndNilObject(var AObject);
  6. implementation
  7. procedure FreeObject(AObject: TObject);
  8. begin
  9. {$IFDEF AUTOREFCOUNT}
  10. AObject.DisposeOf;
  11. {$ELSE}
  12. AObject.Free;
  13. {$ENDIF}
  14. end;
  15. procedure FreeAndNilObject(var AObject);
  16. var
  17. ATemp: TObject;
  18. begin
  19. ATemp := TObject(AObject);
  20. Pointer(AObject) := nil;
  21. FreeObject(ATemp);
  22. end;
  23. end.