unit1.pas 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  1. unit Unit1;
  2. {$mode objfpc}{$H+}
  3. interface
  4. uses
  5. BrookAction, SysUtils;
  6. type
  7. TMyEnum = (enum1, enum2, enum3);
  8. TMySet = set of TMyEnum;
  9. { TMyType }
  10. TMyType = class
  11. private
  12. FMyBoolean: Boolean;
  13. FMyChar: Char;
  14. FMyCurrency: Currency;
  15. FMyDateTime: TDateTime;
  16. FMyEnum: TMyEnum;
  17. FMyFloat: Double;
  18. FMyInt64: Int64;
  19. FMyInteger: Integer;
  20. FMySet: TMySet;
  21. FMyString: string;
  22. published
  23. property MyChar: Char read FMyChar write FMyChar;
  24. property MyString: string read FMyString write FMyString;
  25. property MyInteger: Integer read FMyInteger write FMyInteger;
  26. property MyInt64: Int64 read FMyInt64 write FMyInt64;
  27. property MyFloat: Double read FMyFloat write FMyFloat;
  28. property MyCurrency: Currency read FMyCurrency write FMyCurrency;
  29. property MyBoolean: Boolean read FMyBoolean write FMyBoolean;
  30. property MyDateTime: TDateTime read FMyDateTime write FMyDateTime;
  31. property MyEnum: TMyEnum read FMyEnum write FMyEnum;
  32. property MySet: TMySet read FMySet write FMySet;
  33. end;
  34. { TMyAction }
  35. TMyAction = class(specialize TBrookGAction<TMyType>)
  36. public
  37. procedure Post; override;
  38. end;
  39. implementation
  40. { TMyAction }
  41. procedure TMyAction.Post;
  42. var
  43. VEnum: TMyEnum;
  44. VMyEnum, VMySet: string;
  45. begin
  46. Write('MyChar: %s<br />', [Entity.MyChar]);
  47. Write('MyString: %s<br />', [Entity.MyString]);
  48. Write('MyInteger: %d<br />', [Entity.MyInteger]);
  49. Write('MyInt64: %d<br />', [Entity.MyInt64]);
  50. Write('MyFloat: %f<br />', [Entity.MyFloat]);
  51. Write('MyCurrency: %m<br />', [Entity.MyCurrency]);
  52. Write('MyBoolean: %s<br />', [BoolToStr(Entity.MyBoolean, True)]);
  53. Write('MyDateTime: %s<br />', [DateTimeToStr(Entity.MyDateTime)]);
  54. WriteStr(VMyEnum, Entity.MyEnum);
  55. Write('MyEnum: %s<br />', [VMyEnum]);
  56. VMySet := '';
  57. VMyEnum := '';
  58. for VEnum in Entity.MySet do
  59. begin
  60. WriteStr(VMyEnum, VEnum);
  61. VMySet += VMyEnum + ', ';
  62. end;
  63. SetLength(VMySet, Length(VMySet) - 2);
  64. Write('MySet: %s<br />', [VMySet]);
  65. end;
  66. initialization
  67. TMyAction.Register('*');
  68. end.