我在程序里用的ACTIVEX控件,取对象时设置的类型是variant。不知道怎么能把variant里的内容放到流里面。我在网上查到一段程序,不过不好使,不知道有没有什么解决办法。
TForm2.VariantToStream (const v : olevariant;
Stream : TMemoryStream);
var
p : pointer;
begin
Stream.Position := 0;
Stream.Size := VarArrayHighBound (v, 1) - VarArrayLowBound(v, 1) + 1;
//上面这句运行时出错
p := VarArrayLock (v);
Stream.Write (p^, Stream.Size);
VarArrayUnlock (v);
Stream.Position := 0;
end;
TForm2.VariantToStream (const v : olevariant;
Stream : TMemoryStream);
var
p : pointer;
begin
Stream.Position := 0;
Stream.Size := VarArrayHighBound (v, 1) - VarArrayLowBound(v, 1) + 1;
//上面这句运行时出错
p := VarArrayLock (v);
Stream.Write (p^, Stream.Size);
VarArrayUnlock (v);
Stream.Position := 0;
end;
解决方案 »
- 使用ServerSocket和clientsocket如何实现客户端发送一个a服务端受到后自动返回B呢?
- 数据汇总
- 请问安装程序用的是一个窗体么
- 插件(dll)内部如何使用应用框架内的连接池(ADO)?
- 请教两个Form中数据关联的问题 :)
- 如何得到OUTLOOK帐户列表,在线等待,先谢20分
- DELPHI怎样调用WINRAR压缩文件???
- 求教indy的问题,给100!!!!
- 要取出数据表中字段的sql语句怎么写
- 怎样删除一个字符串中的回车符??(HELP!!!!!!!)
- 如何取得一个float变量小数点后面的位数?
- Access中的自动编号在Delphi中Ttable中的TDBGrid中怎么用
var
p : pointer;
begin
Stream.Position := 0;
Stream.Size := VarArrayHighBound (v, 1) - VarArrayLowBound(v, 1) + 1;
p := VarArrayLock (v);
Stream.Write (p^, Stream.Size);
VarArrayUnlock (v);
Stream.Position := 0;
end;http://lysoft.7u7.net
VarIsArray