tinterface1.pp 602 B

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. { %VERSION=1.1 }
  2. { %SKIPTARGET=macos }
  3. { On macos it crashes when run.}
  4. {$mode objfpc}
  5. type
  6. IInterface = interface(IUnknown)
  7. procedure mydo;
  8. end;
  9. TMyClass = class(TInterfacedObject, IInterface)
  10. procedure mydo;virtual;
  11. end;
  12. TMyClass2 = class(TMyClass)
  13. i : integer;
  14. end;
  15. var
  16. l : longint;
  17. procedure tmyclass.mydo;
  18. begin
  19. l:=1;
  20. end;
  21. var
  22. c: TMyClass;
  23. i: IInterface;
  24. c2 : TMyClass;
  25. begin
  26. c := TMyClass.Create;
  27. i := c;
  28. l:=0;
  29. i.mydo;
  30. if l<>1 then
  31. halt(1);
  32. c2 := TMyClass2.Create;
  33. i := c2;
  34. l:=0;
  35. i.mydo;
  36. if l<>1 then
  37. halt(1);
  38. end.