Browse Source

*** empty log message ***

florian 25 years ago
parent
commit
33d42bd125
1 changed files with 47 additions and 0 deletions
  1. 47 0
      tests/test/testitf4.pp

+ 47 - 0
tests/test/testitf4.pp

@@ -0,0 +1,47 @@
+{ $version >= 1.1}
+{$mode objfpc}
+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;
+
+
+var
+  c: TMyClass;
+begin
+  i:=0;
+  c := TMyClass.Create;
+  DoTest(c);
+  DoTest2(c);
+  c.Free;
+  if i<>2 then
+    begin
+       writeln('Problem with passing interfaces as parameters');
+       halt(1);
+    end;
+end.