var
  i:integer;
  ErrorFlag:Boolean;
  ItemObj:OPCItem;
  ItemIDs:array[1..2] of string;
  ItemClientHandles:array[1..2] of integer;
  Errors:array of integer;
begin
  if ErrorFlag=False then
  FOPCItems:=FOPCGroup.OPCItems;
  ItemIDs[1]:=Edit2.Text;
  ItemIDs[2]:=Edit3.Text;
  ItemClientHandles[1]:=1;
  ItemClientHandles[2]:=2;
  FOPCItems.AddItems(
  2,ItemIDs,ItemClientHandles,MyItemServerHandles,Errors);
end;创建Items项时出现问题:最后一句错误提示 Types of actual and formal var parameters must be identical

解决方案 »

  1.   

    这个我知道,具体的应该怎么改,比如在AddItems里面参数应该怎么写? 跪求啊~~~
      

  2.   

    用PSafeArray包一下试试PSafeArray(ItemIDs);……后面几个都包一下
    procedure AddItems(NumItems: Integer; var ItemIDs:  afeArray; var ClientHandles:  afeArray;        out ServerHandles:  afeArray; out Errors:  afeArray);
      

  3.   

    辛苦了,我尝试了 现在的问题是[Error] Opc.pas(280): Undeclared identifier: 'PSafeArray',未申明的标示符,求解
      

  4.   

    网上有这么一段代码:
    var
    NumItems:Integer;
    OVItemID:OleVariant;
    OVClientHandles:OleVariant;
    OVServerHandles:OleVariant;
    OVErrors:OleVariant;
    OleErr:string;
    begin
    FOPCItems.AddItems(
      2,PSafeArray(TVarData(OVItemID).VOleStr),
      PSafeArray(TVarData(OVClientHandles).VInteger),
      PSafeArray(TVarData(OVServerHandles).VInteger),
      PSafeArray(TVarData(OVErrors).VInteger),
      EmptyParam,
      EmptyParam
      );
    end;
    提示错误是:[Error] Opc.pas(137): Not enough actual parameters 没有足够的实际参数
      

  5.   

    PSafeArray is defined in ActiveX.pas;uses PSafeArray;
      

  6.   

     没用啊~~我是 uses OPCSiemensDAAutomation_TLB 这个,而 ActiveX里面已经用到了
      

  7.   

    'PSafeArray'是定义在ActiveX中,不知道你是如何使用的。
      

  8.   

    主界面中uses OPCSiemensDAAutomation_TLB 
    在OPCSiemensDAAutomation_TLB 单元文件中 uses ActiveX
      

  9.   

    不处在同一单元都要USES的,在主界面也要uses ActiveX
      

  10.   

    恩,我加了 现在我的代码是:FOPCItems.AddItems(2,PSafeArray(ItemIDs),
      PSafeArray(ItemClientHandles),
      PSafeArray(MyItemServerHandles),
      PSafeArray(Errors));
    提示的错误是:[Error] Opc.pas(282): Invalid typecast (无效的类型转换)
      

  11.   

    谁有Delphi6开发OPC客户端的资料啊 [email protected]
    跪求~~~啊
      

  12.   

     我是做DElphi开发的,现在客户要求,没办法临时学的,用第三方软件开发OPC客户端,你有空就发我一份吧 [email protected],谢谢
      

  13.   

    opc我记得官网上面有delphi例子在,好久不看plc了,呵呵。
    case5166
    (我看见佛)
    说的都给你回答了啊,就是类型不对。