tmshlp11.pp 675 B

12345678910111213141516171819202122232425262728293031323334353637383940
  1. { %NORUN }
  2. {$mode objfpc}
  3. {$modeswitch multihelpers}
  4. program tmshlp11;
  5. type
  6. TMyObject = class
  7. class function Create1: TMyObject;
  8. end;
  9. THelper1 = class helper for TMyObject
  10. class function Create2: TMyObject;
  11. end;
  12. THelper2 = class helper for TMyObject
  13. class function Create3: TMyObject;
  14. end;
  15. class function TMyObject.Create1: TMyObject;
  16. begin
  17. result := TMyObject.Create;
  18. end;
  19. class function THelper1.Create2: TMyObject;
  20. begin
  21. result := TMyObject.Create;
  22. end;
  23. class function THelper2.Create3: TMyObject;
  24. begin
  25. result := TMyObject.Create;
  26. end;
  27. var
  28. obj: TMyObject;
  29. begin
  30. obj := TMyObject.Create1;
  31. obj := TMyObject.Create2;
  32. obj := TMyObject.Create3;
  33. end.