我继承了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;
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;
begin
mynode:=treeview.items.add(nil,'sdlkf'); //这里返回的是TTreeNode类型,并非你的TMyNode类型,因而没有你定义的成员。。
mynode.ziji:=str;
str:=str+'a';
end;你应该先建好TMyNode,然后往TTreeView里加,不是返过来。。
createnodeclass方法ffa