做一个带数据感知功能的TreeView控件,我是从TTreeView继承的,但是想在TTreeNode类中加一个属性可以储存字符串,应该怎样让我自编的TTreeView包含的我想扩展功能的TTreeNode,
解决方案 »
- teechart重画
- delphi dbedit 数值计算
- 高版本Delphi的DBGrid带有CheckBox吗?
- 请问各位在Delphi中怎样把pagecontrol上面的头(TabSheet1,TabSheet2...)去掉
- 请教为什么我在用循环将某几个表的记录插入到新的表里时总是出现超时
- 怎样将用户名读取到dbcombobox?
- 当前窗口问题
- 怎么判断我的计算机上有没有安装MTS server?如果没有的话,怎么装上?
- 在线等候:当我通过query对数据库表作delete操作时,如何知道最终删除了多少条纪录?
- 3.可恨的memo.lines.string[1]:='xxxx';为什么赋值之后没变化?我用memo.lines.string[0]:='xxxx'就好用.怎么对第一行的第十个字操作呢?怎么对第二行操作呢?2个问题全答上来20分以上。有信用
- 数据库书签问题
- 谁知道那里有英文win98啊,我急用
Tmytreeview=class(Ttreeview)
public
property mystr(index:integer,const newelement:string);
end;
type
TTreeNodeEx = class(TTreeNode);
增加一个属性
你的TreeView控件不要从TTreeView继承
继承TCustomTreeView,TTreeNode替换为TTreeNodeEx
事实上也不一定要必要这么做,
做数据感知的TreeView控件,你可以考虑使用Node.Data属性,由此和数据源关联,把字符串保存在其中即可(定义一个record)
或者定义两个类,父节点一个类,子节点一个类,从父节点继承
注册一个属性编辑器也是必要的,用来提供一个字段编辑,
指定载入哪几个字段到树结构,字段在节点中位置我对控件方面懂得甚少,只是有考虑过也写一个这样的控件
这方面我也想了解 还请多指教
Type
PNOdeInfo= ^TNodeInfo;
TNodeInfo= Record
S: String;
I: Integer;
.....
var PCurNodeInfo: PNodeInfo
New(PCurNodeInfo);
PCurNodeInfo^.s:= ...;
PCurNodeInfo^.I:= ...;
CurNode.Data:= PCurNodeInfo;
这样就把你想存的S,I放入Data属性里了。
调用的时候用:PCurNodeInfo(CurNode.Data)^.S 就可以了