用VC写的控件在Delphi里注册后,数组类型会出现一个OleVariant参数,我现在需要调用这个方法,可给OleVariant参数赋值后,运行时总是说我传的不是一个数组类型的参数?
请问,怎样给该参数赋值,让函数能够认识是一个数组,能够工作下去???

解决方案 »

  1.   

    var myvariant:olevariant;
        icount:integer;
    begin
      myvariant:=vararraycreate([0,yourarray.count-1],varvariant);//创建一个变量型数组.
      for icount:=0 to yourarray.count-1 do begin //yourarray为现有数组.
      myvariant[icount]:=yourarray[icount];
    end;
    然后就可以传递了.
      

  2.   

    我早已经试过了,我的代码如下:
        OS := varArrayCreate([0,2],VarVariant) ;
        OS[0] := '1. ListBox ' ;
        OS[1] := '2. Combobox' ;
        OS[2] := '3. Exit' ;
    可运行出错:"ItemSelect required an string array"