TTreeView的节点中能不能邦定多个属性,最好给出源码
解决方案 »
- DBGrid数据行改变背景色
- 用ADO连接后台SQL SERVER 2000执行存储过程,总是报“超时已过期”,如何处理?
- 关于一个SQL查询语句
- 请问一个问题,在TREEVIEW中一个结点的TEXT我知道怎么设置,他是否还有个VALUE???怎么设置?
- ControlBar中放置Menu的问题
- 一个关于ExpressQuanumGrid的问题!求教!
- 载线等待-------奇怪,我设置什么?EDIt控件不能输入空格?为什么呀?
- 调用VC dll的delphi程序怎样发布?要做安装程序吗??
- 菜鸟问题,谢谢啦~
- 一个关于从两个DATABASE中取数据的SQL!!
- 卖身吐血求:GIFImage.pass如何得到gif没帧的透明色??
- 2个有关在intraweb中编写javascript代码的问题,很急!在线等。
private
FTag: Integer;
……
public
property Tag: Integer read FTag write FTag;
……
end;procedure TfrmTables.tvTablesCreateNodeClass(Sender: TCustomTreeView;
var NodeClass: TTreeNodeClass);
begin
NodeClass := TMyTreeNode;
end;
type
PMyRec = ^TMyRec;
TMyRec = record
FName: string;
LName: string;
end;绑定指针
procedure TForm1.Button1Click(Sender: TObject);
var
MyRecPtr: PMyRec;
TreeViewIndex: LongInt;
begin
New(MyRecPtr);
MyRecPtr^.FName := Edit1.Text;
MyRecPtr^.LName := Edit2.Text;
TreeViewIndex := StrToInt(Edit3.Text);
with TreeView1 do
begin
if Items.Count = 0 then
Items.AddObject(nil, 'Item' + IntToStr(TreeViewIndex), MyRecPtr)
else if (TreeViewIndex < Items.Count) and (TreeViewIndex >= 0) then Items.AddObject(Items[TreeViewIndex], 'Item' + IntToStr(TreeViewIndex), MyRecPtr);
end;
end;使用指针
procedure TForm1.Button2Click(Sender: TObject);
begin
Label1.Caption := PMyRec(TreeView1.Selected.Data)^.FName + ' ' +
PMyRec(TreeView1.Selected.Data)^.LName;
end;
呵呵,英雄所见略同嘛。^_^用mastersky(浪)的方法是比较好的,但是要记得删除节点前先Dispose相关联的指针。
1:定义需要绑定的属性的record,把所有需要绑定的属性都放到这个record里面
type BindData=record
PA:integer;
PB:rea;
PC:string;
end;
2:Treeview中所有的节点对象都是一个TTreeNode对象,这一个对象有一个Data属性,可以指向一个对象。通过这一个属性可以为每一个Node绑定一个delphi“对象”,在这里我们绑定为BindData类型的对象,通过这个就可以了。
3:在需要属性的时候,通过Data获得所需要的数据就OK了。
这其中最需要注意的就是:对象的construct&dispose操作了,一定要注意,否则会有不少的麻烦。
Pnode=^Tnode;
Tnode=record
dm,mc:string;
end;var
bb:Pnode;
new(bb);
bb.dm:='';
bb.mc:='';
self.treeview1.items.addchildObject(nil,'ddd',bb);就这样就可以了
你再发挥发挥。
省去许多释放问题