tmshlp4.pp 730 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. { %NORUN }
  2. {$mode objfpc}
  3. {$modeswitch multihelpers}
  4. program tmshlp4;
  5. type
  6. TMyObject = class
  7. procedure DoThis_1;
  8. end;
  9. THelperBase = class helper for TMyObject
  10. procedure DoThis_4;
  11. end;
  12. THelper1 = class helper(THelperBase) for TMyObject
  13. procedure DoThis_2;
  14. end;
  15. THelper2 = class helper(THelperBase) for TMyObject
  16. procedure DoThis_3;
  17. end;
  18. procedure THelperBase.DoThis_4;
  19. begin
  20. writeln('DoThis_4');
  21. end;
  22. procedure TMyObject.DoThis_1;
  23. begin
  24. writeln('DoThis_1');
  25. end;
  26. procedure THelper1.DoThis_2;
  27. begin
  28. writeln('DoThis_2');
  29. end;
  30. procedure THelper2.DoThis_3;
  31. begin
  32. writeln('DoThis_3');
  33. end;
  34. var
  35. obj: TMyObject;
  36. begin
  37. obj := TMyObject.Create;
  38. obj.DoThis_1;
  39. obj.DoThis_2;
  40. obj.DoThis_3;
  41. obj.DoThis_4;
  42. end.