Delphi 对treeview的操作(转,收藏)

news/2024/7/8 4:47:17 标签: delphi, imagelist, integer, 图形, button, 任务
如何初始化一个TreeView?
弄一个窗口,放上一个TreeView和一个Button,分别取名为TV1和Btn1。
如果需要 在每个节点前有个图,请在窗口上放上一个ImageList,取名为ImageList1,
双击 它,加入六个图标。
还要记得记得将TV1的Images属性改为ImageList1噢。
双击按 钮Btn1,在里面填入以下代码,然后按F9运行,点击Btn1就可以看到效果了。
 procedure TForm1.Btn1Click(Sender: TObject);
Const MyDocDir = 'C:/My Documents';
PersonDir = '3hSoft';
Var
 Var I : Word;
SubNodeName : array [1..5] of ShortString;
 RootNode, SubNode : TTreeNode;
P : PString;
begin
SubNodeName[1] := '便笺';
SubNodeName[2] := '发件箱';
 SubNodeName[3] := '联系人';
 SubNodeName[4] := '任务';
SubNodeName[5] := '日记';
TV1.Items.Clear;
TV1.Items.BeginUpdate;
New(P);
P^ := MyDocDir + '/' + PersonDir;
RootNode := TV1.Items.AddObject(Nil, '个人文件夹', P);
// 此 Node 的图标已对 Images 属性中取第 0 个了。
 For I := 1 to 5 do begin
New(P);
P^ := MyDocDir + '/' + PersonDir + '/' + SubNodeName ;
SubNode := TV1.Items.AddChildObject(RootNode, SubNodeName, P) ;
; // 如果不想使用图标的话请删除以下两行
SubNode.ImageIndex := I;
SubNode.SelectedIndex := I;
end;
TV1.Items.EndUpdate;
end;
二.在TreeView中如何设置选中结点
var i:integer;
{i为设置的选中结点的索引值}
begin
 if i>treeview1.items.count then
 treeview1.items.selected:=true;
或 treeview1.selected:=treeview1.items;
三。设置TreeView结点的图形
1. 设置TreeView的images属性为已存在的images对象
 treeview1.images:=imagelist1;
2. 在加入结点后执行:
var anode:TTreeNode;
begein anode:=Treeview1.add(nil,'item1');
anode.imageindex:=0;
{结点未选中时显示的图标}
anode.selectedindex:=1; {结点选中时显示的图标}
end
 3. 如果结点图形在改变后未发生变化,可以执行:
treeview1.refresh;
 四。如何批量处理TreeView结点 使用TreeView的items属性的BeginUpdate和EndUpdate方法,例: TreeView1.items.BeginUpdate;
 for i:=0 to TreeView1.items.count-1 do begin //将每个结点的文字改成为小写字母
TreeView1.items.text:=lowercase(TreeView1.items.text);
end;
TreeView1.items.EndUpdate;
 
For I := 1 to 5 do begin New(P);
 P^ := MyDocDir + '/' + PersonDir + '/' + SubNodeName

http://www.niftyadmin.cn/n/871989.html

相关文章

PowerDesigner 里面的mirror功能去掉

大家是不是有时觉得powerDesigner的自动映射功能比较烦呢,不太想用?现在告诉大家在什么地方能去掉。

js 实现签名效果

js实现签名效果 本文主要讲述如何实现js的签名效果,其中运用到的关键知识点便是canvas面板。 效果图 实现 1.引入写好的函数以及插件 <script src="jq-signature.js"></script> <!-- 插件 -->

Linux的mount命令简介

Linux的mount命令简介 在Linux系统中&#xff0c;如果要使用硬盘、光盘、软盘或MO盘等存储设备&#xff0c;必须先进行挂装&#xff08;Mount&#xff09;。当存储设备挂装完成之后&#xff0c;就可以将其作为一个目录来进行访问了。挂装设备需要使用mount命令。执行这一命令&a…

Linux下常用文件解压

Linux下常用文件解压2004年 11月10日inux下怎么解后缀名是gzip的文件&#xff1f; 1.以.a为扩展名的文件: #tar xv file.a 2.以.z为扩展名的文件: #uncompress file.Z 3.以.gz为扩展名的文件: #gunzip file.gz 4.以.bz2为扩展名的文件: #bunzip2 file.bz2 5.以.tar.Z为扩展名的…

当在Delphi 中使用dblookupcombobox 发生未知错误时

在使用delphi时,我们如果使用lookup Combobox,会发生未知错误有时, 现在修改一个属性可以解决这个问题,将DataSet中的lookup字段的LookupCache属性设置为True

Delphi 对象创建的所有者问题

1.设置控件所有者为Application&#xff0c;占用资源较大。2.如果是数据模块动态创建组件&#xff0c;还需加入Forms单元引用。一般最好&#xff1a;对于 TForm 类&#xff0c;使用 Application 为参数&#xff0c;对于窗体上的组件&#xff0c;用Self为参数。对于临时建立的组…

Delphi 错误提示 (2)

今天在自己建的package中遇到一个这样的错误提示 [Error] Never-build package CommonData requires always-build package TntUnicodeVcl_R70 奇怪中... 然后查找问题原因... find it in http://www.aidelphi.com/ShowTopic.asp?TopicID7987&PageIDX1&SpaceID18 原因…