Пример вызываемого объектного интерфейса Назад В начало Вперед
//=============================================================
objInterface MainObj4;
  function  Test4 (p1 : longInt; p2 : longInt) : longInt;
end;

//=============================================================
type
  MainRec = record
	f1 : longInt;
	f2 : string;
	f3 : word;
  end;

//=============================================================
vipInterface aTestVip2 implements MainObj4;

//=============================================================
objInterface MainObj;
  function  TestFunc  (p1 : longInt; p2 : longInt) : longInt;
  function  TestProc  (var p1 : string) : string;
  procedure TestProc2 (p1 : double; var p2 : double);
  function  GetComp : comp;
  procedure CompHandl (c1 : comp; var c2 : comp);
  property  TestProp  : string  read write;
  property  TestProp2 : longInt read;
end;

//=============================================================
objInterface MainObj2;
  procedure TestRec  (var r : MainRec);
  procedure TestRec2 (r : MainRec);
end;

//=============================================================
objInterface MainObj3;
  function  TestObjRef : MainObj2;
  function  TestVipRef : aTestVip2;
  function  TestRef	: MainObj4;
  function  TestCallRef (ref : MainObj4) : longInt;
end;

//=============================================================
vipInterface aTestVip implements MainObj, MainObj2, MainObj3;

//=============================================================
interface aTestVip2;

create view
as select
  *
from
  x$files
;

function Test4 (p1 : longInt; p2 : longInt) : longInt;
{
  Test4 := p1 + p2;
}

end.

//=============================================================
interface aTestVip;

create view
as select
  *
from
  x$files
;

function  TestFunc  (p1 : longInt; p2 : longInt) : longInt;
{
  TestFunc := p1 + p2;
}

function  TestProc  (var p1 : string) : string;
{
  TestProc := p1;
}

function  GetComp : comp;
{
  GetComp := 0;
}

function  TestObjRef : MainObj2;
{
  TestObjRef := ;
}

function  TestVipRef : aTestVip2;
{
  TestVipRef := ;
}

function  TestRef	: MainObj4;
{
  TestRef := ;
}

function  TestCallRef (ref : MainObj4) : longInt;
{
  TestCallRef := ref.Test4(2, 3);
}

procedure CompHandl (c1 : comp; var c2 : comp);
{
}

procedure TestProc2 (p1 : double; var p2 : double);
{
}

procedure TestRec  (var r : MainRec);
{
}

procedure TestRec2 (r : MainRec);
{
}

property  TestProp  : string  read write;
property  TestProp2 : longInt read;

end.