12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152 |
- { %VERSION=1.1 }
- {$ifdef fpc}
- {$mode objfpc}
- {$endif}
- type
- ITest = interface(IUnknown)
- procedure DoSomething;
- end;
- TMyClass = class(TInterfacedObject, ITest)
- procedure DoSomething;
- end;
- var
- i : longint;
- procedure TMyClass.DoSomething;
- begin
- inc(i);
- end;
- procedure DoTest(const ATest: ITest);
- begin
- ATest.DoSomething;
- end;
- procedure DoTest2(ATest: ITest);
- begin
- ATest.DoSomething;
- end;
- type TMyClassCopy = type TMyClass;
- var
- c: ITest;
- begin
- i:=0;
- c := TMyClassCopy.Create;
- DoTest(c);
- DoTest2(c);
- if i<>2 then
- begin
- writeln('Problem with passing interfaces as parameters');
- halt(1);
- end;
- end.
|