谁能给我一个例子?(50分)

  • 主题发起人 主题发起人 爽清
  • 开始时间 开始时间

爽清

Unregistered / Unconfirmed
GUEST, unregistred user!
[:)]从位高手,谁能给我一段关于Treeview使用的例子,
  最好详细一点!
  谢谢!
 

Delphi6/Demos/CustomDraw
 
AddItem
其中的Data属性比较好用
 
Treeview用法这么多,你要什么方面使用方法的例子,能具体点吗?
如果英文好,自己看帮助了。呵呵……
 
我这里有一个TREEVIEW的基本使用方法下面还有一个联系数据库的小例子你可以看一下
TreeView的使用方法。
基本信息:
TreeView 是一个显示树型结构的控件,每一个节点都是一个新类,
使用具有代表性
每个节点都有四个值:
TEXT:显示文字 Image Index:显示图形序号
Selected Index:
State Index:

(1)建立目录项(本例中使用的TREEVIEW名称为:TvwTips)
增加根目录下的节点:(节点)
var
CatNode : TTreeNode;//先建立一个TREEVIEW使用的子对象
begin
TvwTips.SetFocus;//将焦点置到这个TREEVIEW控件上
{在根标题下建立一个新的子标题}
CatNode :=TvwTips.Items.AddChild(
TvwTips.Items.GetFirstNode,'New Category');
CatNode.ImageIndex :=1;
CatNode.SelectedIndex :=2;
CatNode.EditText;{允许用户改变这个标题}
end;

增加下一级目录(内容):
var
ParentNode, TipNode : TTreeNode;//先建立TREEVIEW使用
的子对象
VersionNum : Integer;
begin
TvwTips.SetFocus;//将焦点置到这个TREEVIEW控件上
VersionNum :=TMenuItem(Sender).Tag;{Ver num of new tip}
ParentNode :=TvwTips.Selected;{ 取出当前的选中节点}
if ParentNode.Level=nlTip then{Parent cannot be a tip node}
ParentNode :=TvwTips.Selected.Parent;

TipNode :=TvwTips.Items.AddChildObject(ParentNode,'New
Subject',Pointer(VersionNum));
TipNode.ImageIndex :=3;{Normal tip bitmap}
TipNode.SelectedIndex :=4;{Highlighted tip bitmap}
TipNode.MakeVisible;{Move new tip node into view}
TipNode.EditText;{Immediately allow user to edit subject}
EnableTreeViewFunctions(TipNode.Level);
RtfTip.Clear;
RtfTip.Modified :=False;
end;

(2)说明
TvwTips.Items.GetFirstNode 返回TREEVIEW的第一个节点,函数类型为
:TTreeNode
TvwTips.Items.Count 返回当前TreeView的全部节点数,整数
TvwTips.Selected.Level 返回当前选中节点的在目录树中的级别,
根目录为0
TvwTips.Selected.Parent 返回当前选中节点上级节点,函数类型为
:TTreeNode

这是一个联系数据库的例子
var
anode:ttreenode;
....
if not table2.Active then table2.Open;
table2.First;
while (not table2.Eof) do
begin
anode:=treeview1.Items.GetFirstNode
while (anode<>nil) do
if anode.Text=table2.FieldByName('lx').AsString then//'lx'是数据库的一个字段
break
else
anode:=anode.getNextSibling;
if anode=nil then
anode:=treeview1.Items.AddChild(treeview1.Items.GetFirstNode
,table2.fieldbyname('lx').AsString);
table2.Next;
end;
 
这个问题我也想了好些天,今天看到楼上几位仁兄的留言。我才把这个问题想明白。
在这里多谢各位:)...............
我顺便提醒一下对TreeView不熟悉的兄弟:
获得第一个node一定要用到这个anode:=treeview1.Items.GetFirstNode;
我就是由于第一个node而没:(...............
其余的就迎刃而解了。

 
后退
顶部