GLS.XCollectionRegister.pas 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. //
  2. // The graphics engine GLScene https://github.com/glscene
  3. //
  4. unit GLS.XCollectionRegister;
  5. (* Register TXCollection property editor *)
  6. interface
  7. {$I GLScene.Defines.inc}
  8. uses
  9. System.Classes,
  10. GLS.XCollection,
  11. DesignEditors,
  12. DesignIntf;
  13. type
  14. TXCollectionProperty = class(TClassProperty)
  15. public
  16. function GetAttributes: TPropertyAttributes; override;
  17. procedure Edit; override;
  18. end;
  19. procedure Register;
  20. // ------------------------------------------------------------------
  21. implementation
  22. // ------------------------------------------------------------------
  23. uses
  24. FmXCollectionEditor;
  25. // ----------------- TXCollectionProperty ------------------------------------
  26. function TXCollectionProperty.GetAttributes: TPropertyAttributes;
  27. begin
  28. Result := [paDialog];
  29. end;
  30. procedure TXCollectionProperty.Edit;
  31. begin
  32. with XCollectionEditorForm do
  33. begin
  34. SetXCollection(TXCollection(GetOrdValue), Self.Designer);
  35. Show;
  36. end;
  37. end;
  38. procedure Register;
  39. begin
  40. RegisterPropertyEditor(TypeInfo(TXCollection), nil, '', TXCollectionProperty);
  41. end;
  42. // ------------------------------------------------------------------
  43. initialization
  44. // ------------------------------------------------------------------
  45. // class registrations
  46. end.