Automation的 Method方法参数可不可用数组?

xyhv 2007-03-06 05:45:02
请问有哪位高手知道Automation的Method的参数可不可以用数组?怎样实现?
...全文
184 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
xyhv 2007-03-07
  • 打赏
  • 举报
回复
thank!
ebread 2007-03-06
  • 打赏
  • 举报
回复
Automation兼容的数据类型有:
Byte, Currency, Real, Double, Real48, Integer, Single, Smallint, AnsiString, ShortString, Borland.Delphi.System.TDateTime , Borland.Vcl.Variants.Variant , OleVariant, and WordBool

你可以直接用OleVariant来代替数组:
procedure HandleArray(const params: OleVariant); // safecall;
var
i: Integer;
value: Variant;
begin
Assert(VarArrayDimCount(params) = 1);
for i := VarArrayLowBound(params, 1) to VarArrayHighBound(params, 1) do
begin
value := VarArrayGet(params, [i]);
//...
end;
end;

E.g. HandleArray(VarArrayOf([1, 'abc', 2.3]));

如果是字节数组,即Variant的类型为:VarArray or VarByte,可以用VarArrayLock和VarArrayUnLock,网上都有。

1,593

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 网络通信/分布式开发
社区管理员
  • 网络通信/分布式开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧