tinterface1.pp 547 B

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