资源描述:
《delphi中treeview控件使用》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、DELPHI中利用TreeView控件建立目录树2000-06-2600:00:00·-·中国计算机报社p>Rainbow的话:关于TreeView的使用,还可以参看:联合使用TreeView组件TreeView是一个显示树型结构的控件,通过它能够方便地管理和显示具有层次结构的信息,是Windows应用程序的基本控件之一。DELPHI虽然具有比较强大的文件管理功能,提供了多个用于文件管理的标准控件,如DriveComboBox、DirectoryListBox、FileListBox等,通过设置它们的属性,使其建立起联系,甚至不用编写一行
2、程序,我们就可以实现在不同的目录之间进行切换,然而这样的目录切换只适用于进行文件的查找定位,而不能方便地进行目录的浏览,例如我们要从c:windows目录转到c:programfiles目录,就必须返回到根目录才能进行切换,而不能象Windows资源管理器那样任意地在不同的目录之间进行浏览与切换。要实现在不同目录之间任意切换和浏览,还是需要使用TreeView控件,以下程序就利用DELPHI的TreeView控件来建立目录树。在该程序中采用的各部件以及界面设计如下图所示:各部件的主要属性设置如下:部件属性属性值formnamecapt
3、ionform1‘目录浏览’drivecommboboxnamevisibledrivecommbobox1falsefilelistboxnamevisiblefiletypefilelistbox1falsefddirectoryimagelistnameimagelist1treeviewnameimages该程序利用DriveCommboBox控件来获得系统具有的驱动器,并以此作为目录树的最上层,利用FileListBox控件,通过设置其Filetype属性为fdDirectory,可以获得所需的子目录,在TreeView控件的O
4、nExpanding事件中将得到的子目录加到该控件的某一节点下。整个程序的源代码如下:unitmain;interfaceusesWindows,Messages,SysUtils,Classes,Graphics,Controls,Forms,Dialogs,StdCtrls,FileCtrl,ComCtrls,ImgList;typeTForm1=class(TForm)DirTreeView:TTreeView;FileListBox1:TFileListBox;DriveComboBox1:TDriveComboBox;Image
5、List1:TImageList;procedureFormCreate(Sender:TObject);procedureDirTreeViewExpanding(Sender:TObject;Node:TTreeNode;varAllowExpansion:Boolean);private{Privatedeclarations}public{Publicdeclarations}end;varForm1:TForm1;implementation{$R*.DFM}procedureTForm1.FormCreate(Sender:T
6、Object);varFirstNode,DirNode:TTreeNode;ItemCount,Index:integer;Itemstr:string;beginItemCount:=DriveComboBox1.Items.Count;//所有驱动器的个数FirstNode:=DirTreeView.Items.GetFirstNode;forindex:=0toItemCount-1dobeginItemStr:=DriveComboBox1.Items[index];ItemStr:=copy(ItemStr,1,pos(:,I
7、temStr));//获得驱动器的名称(比如C/D)DirNode:=DirTreeView.Items.AddChild(FirstNode,ItemStr);DirNode.HasChildren:=true;DirNode.ImageIndex:=0;DirNode.SelectedIndex:=1;end;end;//响应扩展事件procedureTForm1.DirTreeViewExpanding(Sender:TObject;Node:TTreeNode;VarAllowExpansion:Boolean);varDirNo
8、de:TTreeNode;ItemCount,Index,level,icount:integer;Itemstr,strPath:string;beginifnode.Count=0then