一个和内存流相关的问题,实在是想不明白.(50分)

  • 主题发起人 主题发起人 czx_china
  • 开始时间 开始时间
C

czx_china

Unregistered / Unconfirmed
GUEST, unregistred user!
var
Node:TTreeNode;
Ms: TMemoryStream;
Md: TMemoryStream;
CurrDD:TDD;
begin
if FileExists(ExtractFilePath(Application.ExeName)+'ss.dd') then
begin
Ms:=TMemoryStream.Create;
Ms.LoadFromFile(ExtractFilePath(Application.ExeName)+'ss.dd'');
Ms.Read(CurrDD,sizeof(TDD));

TreeView.Items.Clear;
Node:=TreeView.Items.Add(nil,'节点1');
Md := TMemoryStream.Create;
Md.Write(CurrDD,sizeof(TDD));
Node.Data:=Md;
Node.ImageIndex := 0;
Node.SelectedIndex := 0;

搞不明白为什么关闭EXE的时候老是有个错误,Ms.Read(CurrDD,sizeof(TDD));去了这个就没有问题,可是就不能用CurrDD来传递参数了,很困惑,这倒低是怎么回事啊?
TreeView.Selected:=Node;
TreeView.SetFocus;
Ms.Free;
 
Tdd是什么东西?

试试 ms.position:= 0;
 
自己定义的一个记录类型
 
加这个也不行ms.position:= 0;
关闭的时候还是会出现一个异常错误.
 
你的tdd是怎么定义的?我觉得和你的tdd记录类型可能有关系。
 
不是的,我用COPYFROM来完成也是出现一样的问题
 
接受答案了.
 
后退
顶部