ComCtrls.pas
....
TTreeNode = class(TPersistent)
private
//加入以下兩行
FCity:string;
FSchool:string; FOwner: TTreeNodes;
FText: string;
FData: Pointer;
...
public
//增加如下兩屬性,可適當擴充
propery City:string read FCity write Fcity;
propery School:string read FSchool write FSchool; constructor Create(AOwner: TTreeNodes);
...
end;
这种办法可以方便的在treeview增加属性,这样作了,不用管资源释放吗?安全吗?
....
TTreeNode = class(TPersistent)
private
//加入以下兩行
FCity:string;
FSchool:string; FOwner: TTreeNodes;
FText: string;
FData: Pointer;
...
public
//增加如下兩屬性,可適當擴充
propery City:string read FCity write Fcity;
propery School:string read FSchool write FSchool; constructor Create(AOwner: TTreeNodes);
...
end;
这种办法可以方便的在treeview增加属性,这样作了,不用管资源释放吗?安全吗?
首先在自己的单元中加入下面的类定义:
TNodeEx = class(TTreeNode)
private
FCity:string;
FSchool:string;
public
constructor Create(AOwner: TTreeNodes);
propery City:string read FCity write Fcity;
propery School:string read FSchool write FSchool;
end;constructor TNodeEx.Create(AOwner: TTreeNodes);
begin
inherited;
FCity:='';
FSchool:='';
end;然后在
procedure TForm1.TreeView1CreateNodeClass(
Sender: TCustomTreeView; var NodeClass: TTreeNodeClass);
begin
NodeClass:=TNodeEx;
end;然后我们就可以这样访问代码了;
(TreeView.Selected AS TNodeEx).School:='asdfasdf';
TMyData = packed record
City:string;
School:string;
end;
PMyData =^TMyData;
...
...
MyData:PMyData;MyData^.School := 'fdasdfas';
TreeView.Selected.Data := MyData;或者用xthmpro_cn(安徽农民*在外打工) 的办法也可以