*****怎样将TreeView的全部内容用最简单的方法从中间层传至客户端*****

prometheusphinx 2001-09-06 11:29:41
...全文
115 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
prometheusphinx 2001-09-06
  • 打赏
  • 举报
回复
多谢Checky,等我试一下,成功了我一定给你加上150分!!!
chechy 2001-09-06
  • 打赏
  • 举报
回复
将TTreeView存到文件或者流中(SaveToFile, SaveToStream),然后将其转化为OleVariant。传递到Client端后,转化为流或者文件,然后再用TTreeview(LoadFromFile, LoadFromStream).就可以了。
下面是转化函数:
function FileToVariant(FileName: string): OleVariant;
var
AStream: TFileStream;
MyBuffer: Pointer;
begin
AStream := TFileStream.Create(FileName, fmOpenRead);
try
AStream.Seek(0, soFromBeginning);
Result := VarArrayCreate([0, AStream.Size - 1], VarByte);
MyBuffer := VarArrayLock(Result);
AStream.ReadBuffer(MyBuffer^, AStream.Size);
VarArrayUnlock(Result);
finally
AStream.Free;
end;
end;

procedure VariantToFile(FileName: string; var AVariant: OleVariant);
var
AStream: TFileStream;
MyBuffer: Pointer;
Size: Integer;
begin
AStream := TFileStream.Create(FileName, fmCreate);
try
AStream.Seek(0, soFromBeginning);
Size := VarArrayHighBound(AVariant, 1) - VarArrayLowBound(AVariant, 1) + 1;
MyBuffer := VarArrayLock(AVariant);
AStream.WriteBuffer(MyBuffer^, Size);
VarArrayUnlock(AVariant);
finally
AStream.Free;
end;
end;
prometheusphinx 2001-09-06
  • 打赏
  • 举报
回复
在三层应用程序中,我在中间层(COM+组件)创建了一个TreeView,并从数据库中查询了
很多东西加在了TreeView的节点上(类似于公司、部门、组、人员这种关系的树型图),
现在我想在COM+组件中写一个方法,客户端调用这个方法就可以将TreeView的内容(所有
节点的内容)搬到客户端来赋予另一个TreeView控件,就象TreeView2.Items := TreeView1.Items一样,当然不可能这样简单;
Tense 2001-09-06
  • 打赏
  • 举报
回复
倒过来差不多;
从客户端传到中间件
zzutlink 2001-09-06
  • 打赏
  • 举报
回复
大家都看不懂呀?那就不是我的事了
jin_fei 2001-09-06
  • 打赏
  • 举报
回复
what means?
zzutlink 2001-09-06
  • 打赏
  • 举报
回复
说明白一些好么????

5,392

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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