procedure getEMS (out   emsInfo : emsMg_i.EMS_T);  其中emsMg_i.EMS_T的定义是  type
  EMS_T = interface;
  EMSMgr_I = interface;  EMS_T = interface
    ['{25FF6439-3269-AED3-CB41-49AAD8ADC5D2}']
    function  _get_name : globaldefs_i.NamingAttributes_T;
    procedure _set_name (const name : globaldefs_i.NamingAttributes_T);
    function  _get_userLabel : AnsiString;
    procedure _set_userLabel (const userLabel : AnsiString);
    function  _get_nativeEMSName : AnsiString;
    procedure _set_nativeEMSName (const nativeEMSName : AnsiString);
    function  _get_owner : AnsiString;
    procedure _set_owner (const _owner : AnsiString);
    function  _get_emsVersion : AnsiString;
    procedure _set_emsVersion (const emsVersion : AnsiString);
    function  _get_type : AnsiString;
    procedure _set_type (const _type : AnsiString);
    function  _get_additionalInfo : globaldefs_i.NVSList_T;
    procedure _set_additionalInfo (const additionalInfo : globaldefs_i.NVSList_T);
    property  name : globaldefs_i.NamingAttributes_T read _get_name write _set_name;
    property  userLabel : AnsiString read _get_userLabel write _set_userLabel;
    property  nativeEMSName : AnsiString read _get_nativeEMSName write _set_nativeEMSName;
    property  _owner : AnsiString read _get_owner write _set_owner;
    property  emsVersion : AnsiString read _get_emsVersion write _set_emsVersion;
    property  _type : AnsiString read _get_type write _set_type;
    property  additionalInfo : globaldefs_i.NVSList_T read _get_additionalInfo write _set_additionalInfo;
  end;
我怎么定义才能用getEMS (out   emsInfo : emsMg_i.EMS_T); emsMg_i.EMS_T怎么定义呢?谢谢各位前辈

解决方案 »

  1.   

    EMS_T是一个接口,不能生成实例对象,必须用相应的类来实现它的功能后形成对象实例。
      

  2.   

    举例:TEMS_T = class(TInterfaceObject, EMS_T)
    public
        function  _get_name : globaldefs_i.NamingAttributes_T;
        procedure _set_name (const name : globaldefs_i.NamingAttributes_T);
        function  _get_userLabel : AnsiString;
        procedure _set_userLabel (const userLabel : AnsiString);
        function  _get_nativeEMSName : AnsiString;
        procedure _set_nativeEMSName (const nativeEMSName : AnsiString);
        function  _get_owner : AnsiString;
        procedure _set_owner (const _owner : AnsiString);
        function  _get_emsVersion : AnsiString;
        procedure _set_emsVersion (const emsVersion : AnsiString);
        function  _get_type : AnsiString;
        procedure _set_type (const _type : AnsiString);
        function  _get_additionalInfo : globaldefs_i.NVSList_T;
        procedure _set_additionalInfo (const additionalInfo : globaldefs_i.NVSList_T);
        property  name : globaldefs_i.NamingAttributes_T read _get_name write _set_name;
        property  userLabel : AnsiString read _get_userLabel write _set_userLabel;
        property  nativeEMSName : AnsiString read _get_nativeEMSName write _set_nativeEMSName;
        property  _owner : AnsiString read _get_owner write _set_owner;
        property  emsVersion : AnsiString read _get_emsVersion write _set_emsVersion;
        property  _type : AnsiString read _get_type write _set_type;
        property  additionalInfo : globaldefs_i.NVSList_T read _get_additionalInfo write _set_additionalInfo;
      end;以下为你的TEMS_T的实现代码:function  TEMS_T._get_name : globaldefs_i.NamingAttributes_T;
    begin
      Result := ....
    end;....
    建立这个类对象,就是一个接口实例
      

  3.   

    其实已经有这样一个函数了
    procedure TEMSMgr_I.getEMS ( out   emsInfo : emsMg_i.EMS_T);
    begin
    ..................
    ....end;
    我要用这个函数,就是不知道怎么定义out   emsInfo : emsMg_i.EMS_T,郁闷