ksObjUtils.pas 892 B

12345678910111213141516171819202122232425262728293031323334353637
  1. {*******************************************************}
  2. { }
  3. { Methods of Object }
  4. { }
  5. { CopyRight (C) 2018-2020 KngStr }
  6. { }
  7. {*******************************************************}
  8. unit ksObjUtils;
  9. interface
  10. //take from qdac (Thanks for swish)
  11. procedure FreeObject(AObject: TObject);
  12. procedure FreeAndNilObject(var AObject);
  13. implementation
  14. procedure FreeObject(AObject: TObject);
  15. begin
  16. {$IFDEF AUTOREFCOUNT}
  17. AObject.DisposeOf;
  18. {$ELSE}
  19. AObject.Free;
  20. {$ENDIF}
  21. end;
  22. procedure FreeAndNilObject(var AObject);
  23. var
  24. ATemp: TObject;
  25. begin
  26. ATemp := TObject(AObject);
  27. Pointer(AObject) := nil;
  28. FreeObject(ATemp);
  29. end;
  30. end.