在程序中如何对TreeView的Data属性赋值和取得其属性的数值啊

解决方案 »

  1.   

    使用指针.
    比如有一记录:
      TTreeCF= packed record
        CF:Single;
        memo:WideString;
        Classify:Integer;
        DateTime:TDateTime;
        DispTree:Boolean;    //True 为显示,False 为显示子树符号
        Probablity:Single;
      end;
    先对该记录类型赋值后,再赋给data
    node.Data:=certain;
    用的时候再把经取出来就行了.
    记录该怎样用,楼主该不是不会吧.
      

  2.   

    var
      PData: PInteger;GetMem(PData, SizeOf(Integer));
    Node.Data := PData;//释放PData := Node.Data;
    if Assigned(PData) then
    begin
      FreeMem(PData);
      Node.Data := nil;
    end;
      

  3.   

    ehom已经回答了,呵呵。如果要存储一个数组就必须得得记录记针了,
      

  4.   

    var
      PData: PInteger;GetMem(PData, SizeOf(Integer));
    Node.Data := PData;//释放PData := Node.Data;
    if Assigned(PData) then
    begin
      FreeMem(PData);
      Node.Data := nil;
    end;
      

  5.   

    用记录型也不是 很麻烦啊记得在delete里边释放就可以了
      

  6.   

    我自己感觉TreeView确实有点缺点,上次我想在节点上存上一个String类型的数据,找了半天,发现除了text就没有别的可用了,最后想用data的,但是权衡利弊之后选择了在建立一个不可见的Treeview,用他的text来存我需要的值,然后用他们的absoluteIndex来关联。想起来时很笨,但使用起来效果还不错。
      

  7.   

    DATA是个指针,不管你要存什么,自然都是要用指针来存,也免不了要涉及到内存的管理了。