ksFmxUtils.pas 730 B

1234567891011121314151617181920212223242526272829303132333435363738
  1. unit ksFmxUtils;
  2. interface
  3. uses
  4. FMX.Types;
  5. procedure FreeFmxObject(AFmxObject: TFmxObject);
  6. procedure FreeAndNilFmxObject(var AFmxObject);
  7. implementation
  8. uses
  9. ksObjUtils;
  10. procedure FreeFmxObject(AFmxObject: TFmxObject);
  11. begin
  12. if not Assigned(AFmxObject) then
  13. Exit;
  14. if Assigned(AFmxObject.Owner) then
  15. AFmxObject.Owner.RemoveComponent(AFmxObject);
  16. if Assigned(AFmxObject.Parent) then
  17. AFmxObject.Parent := nil;
  18. FreeObject(AFmxObject);
  19. end;
  20. procedure FreeAndNilFmxObject(var AFmxObject);
  21. var
  22. ATemp: TFmxObject;
  23. begin
  24. if Pointer(AFmxObject) = nil then
  25. Exit;
  26. ATemp := TFmxObject(AFmxObject);
  27. Pointer(AFmxObject) := nil;
  28. FreeFmxObject(ATemp);
  29. end;
  30. end.