我继承了treeview组件,在里面添加了三个属性:type
  TMyNode=class(TTreeNode)
    private
      FShangJi:string;
      FZiJi:string;
      FXiaJi:string;
    public
      property ShangJi:string read FShangJi write FShangJi;
      property XiaJi:string read FXiaJi write FXiaJi;
      property ZiJi:string read FZiJi write FZiJi;
end;然后我写了一个for循环,在每个节点的“ziji”属性赋了一个值,结果总是出错,提示读了不可读的内存区域,如下所示:
var
str:string;
mynode:TMyNode;str:='a';
for index=0 to 10 do
begin
    mynode:=treeview.items.add(nil,'sdlkf');
    mynode.ziji:=str;
    str:=str+'a';
end;

解决方案 »

  1.   

    for index=0 to 10 do
    begin
        mynode:=treeview.items.add(nil,'sdlkf');  //这里返回的是TTreeNode类型,并非你的TMyNode类型,因而没有你定义的成员。。
        mynode.ziji:=str;
        str:=str+'a';
    end;你应该先建好TMyNode,然后往TTreeView里加,不是返过来。。
      

  2.   

    如果先创建一个节点,然后调用那个方法往treeview里面添加节点呢??
      

  3.   

    好像找不到能直接把一个节点对象添加到treeview树中去的方法
      

  4.   

    找到解决办法了,我用的方法没有错,只是少了一个重要的步骤,就是在treeview组建中的一个
    createnodeclass方法ffa