分享

delphi TTreeNode.data

 貌似小白 2013-01-22
对于指针来说,你必须要分配内存。并且必须要释放内存。因此你的实现方法应当如下
var
  p: Pchar;
begin
  GetMem(p,20);
  p^:='ABCDED';
  Node.Data:=p
end;

注意,里面不能写:
s:='abcdefg';
p:=Pchar(s);
因为这句的意思是把p指向s的位置。而如果s是一个局域变量的话他是会自动释放的,回头释放后你的指针就不知道跑到哪里了。因此你可能数据就会错误。或者为空。我估计你的问题也是这个原因造成的。
另外,释放内存在TreeView的OnDeletion事件中写:
procedure TForm1.TreeView1Deletion(Sender: TObject; Node: TTreeNode);
begin
  FreeMem(Node.Data,20);
end

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多