tmshlp6.pp 648 B

12345678910111213141516171819202122232425262728293031323334353637
  1. { %NORUN }
  2. {$mode objfpc}
  3. {$modeswitch multihelpers}
  4. program tmshlp6;
  5. type
  6. TMyObject = class
  7. m_num: integer;
  8. property num1: integer read m_num;
  9. end;
  10. THelperBase = class helper for TMyObject
  11. function GetNum: integer;
  12. end;
  13. THelper1 = class helper(THelperBase) for TMyObject
  14. property num2: integer read GetNum;
  15. end;
  16. THelper2 = class helper(THelperBase) for TMyObject
  17. property num3: integer read GetNum;
  18. end;
  19. function THelperBase.GetNum: integer;
  20. begin
  21. result := m_num;
  22. end;
  23. var
  24. obj: TMyObject;
  25. num: integer;
  26. begin
  27. obj := TMyObject.Create;
  28. // 2^3
  29. obj.m_num := 2;
  30. num := obj.num1 * obj.num2 * obj.num3;
  31. writeln(num);
  32. end.