Virtual TreeView是一个功能强大的delphi树型组件,从它带的例子就能看出来。下面我把我做的如下图所示的树型的代码贴出来,供大家参考:
源码:
-
-
-
unitUnit4;
-
-
interface
-
-
uses
- Windows,Messages,SysUtils,Variants,Classes,Graphics,Controls,Forms,
- Dialogs,VirtualTrees,ImgList,Menus,AdvMenus;
-
-
type
-
-
-
TMyRec=record
-
Text:string;
-
ImageIndex:Integer;
-
Id:string;
-
CheckType:TCheckType;
-
CheckState:TCheckState;
-
end;
-
-
- PMyRec=^TMyRec;
-
-
TForm4=class(TForm)
- vsttree:TVirtualStringTree;
- il1:TImageList;
- advpmn1:TAdvPopupMenu;
- N1:TMenuItem;
-
procedureFormCreate(Sender:TObject);
-
procedurevsttreeGetText(Sender:TBaseVirtualTree;Node:PVirtualNode;
-
Column:TColumnIndex;TextType:TVSTTextType;varCellText:WideString);
-
procedurevsttreeInitNode(Sender:TBaseVirtualTree;ParentNode,
-
Node:PVirtualNode;varInitialStates:TVirtualNodeInitStates);
-
procedurevsttreeGetImageIndex(Sender:TBaseVirtualTree;Node:PVirtualNode;
-
Kind:TVTImageKind;Column:TColumnIndex;varGhosted:Boolean;
-
varImageIndex:Integer);
-
procedureN1Click(Sender:TObject);
-
procedurevsttreeFreeNode(Sender:TBaseVirtualTree;Node:PVirtualNode);
-
procedurevsttreeGetPopupMenu(Sender:TBaseVirtualTree;Node:PVirtualNode;
-
Column:TColumnIndex;constP:TPoint;varAskParent:Boolean;
-
varPopupMenu:TPopupMenu);
-
private
-
-
public
-
-
end;
-
-
var
- Form4:TForm4;
-
-
implementation
-
-
{$R*.dfm}
-
-
procedureTForm4.FormCreate(Sender:TObject);
-
var
- RootNode,ChileNode:PVirtualNode;
- Data:PMyRec;
-
begin
-
vsttree.NodeDataSize:=SizeOf(TMyRec);
-
vsttree.Images:=il1;
-
-
RootNode:=vsttree.AddChild(nil);
-
Data:=vsttree.GetNodeData(RootNode);
-
Data^.Text:='根结点';
-
Data^.Id:='RootID';
-
Data^.ImageIndex:=0;
- Data^.CheckType:=ctTriStateCheckBox;
- Data^.CheckState:=csUncheckedNormal;
-
-
-
ChileNode:=vsttree.AddChild(RootNode);
-
Data:=vsttree.GetNodeData(ChileNode);
-
Data^.Text:='子结点1';
-
Data^.Id:='ChildId1';
-
Data^.ImageIndex:=1;
- Data^.CheckType:=ctTriStateCheckBox;
- Data^.CheckState:=csUncheckedNormal;
-
-
ChileNode:=vsttree.AddChild(RootNode);
-
Data:=vsttree.GetNodeData(ChileNode);
-
Data^.Text:='子结点2';
-
Data^.Id:='ChildId2';
-
Data^.ImageIndex:=1;
- Data^.CheckType:=ctTriStateCheckBox;
- Data^.CheckState:=csUncheckedNormal;
-
-
vsttree.Expanded[RootNode]:=True;
-
-
-
-
-
end;
-
procedureTForm4.N1Click(Sender:TObject);
-
var
- CurrentNode:PVirtualNode;
- Data:PMyRec;
-
Checked:string;
-
begin
-
-
-
CurrentNode:=vsttree.FocusedNode;
-
ifAssigned(CurrentNode)then
-
begin
-
Data:=vsttree.GetNodeData(CurrentNode);
-
ifCurrentNode.CheckState=csCheckedNormalthen
-
begin
-
Checked:='是';
-
end
-
else
-
begin
-
Checked:='否';
-
end;
-
ShowMessage('当前结点:'+#13
-
+'Id='+Data^.Id+#13
-
+'Text='+Data^.Text+#13
-
+'是否选中='+Checked);
-
end;
-
end;
-
-
procedureTForm4.vsttreeFreeNode(Sender:TBaseVirtualTree;Node:PVirtualNode);
-
var
- Data:PMyRec;
-
begin
-
Data:=Sender.GetNodeData(Node);
- Finalize(Data^);
-
end;
-
-
procedureTForm4.vsttreeGetImageIndex(Sender:TBaseVirtualTree;
- Node:PVirtualNode;Kind:TVTImageKind;Column:TColumnIndex;
-
varGhosted:Boolean;varImageIndex:Integer);
-
var
- Data:PMyRec;
-
begin
-
Data:=Sender.GetNodeData(Node);
- ImageIndex:=Data^.ImageIndex;
-
end;
-
-
procedureTForm4.vsttreeGetPopupMenu(Sender:TBaseVirtualTree;
-
Node:PVirtualNode;Column:TColumnIndex;constP:TPoint;
-
varAskParent:Boolean;varPopupMenu:TPopupMenu);
-
begin
-
ifAssigned(Node)then
-
begin
- PopupMenu:=advpmn1;
-
end
-
else
-
begin
-
PopupMenu:=nil;
-
end;
-
end;
-
-
procedureTForm4.vsttreeGetText(Sender:TBaseVirtualTree;Node:PVirtualNode;
-
Column:TColumnIndex;TextType:TVSTTextType;varCellText:WideString);
-
var
- Data:PMyRec;
-
begin
-
Data:=Sender.GetNodeData(Node);
- CellText:=Data^.Text;
-
end;
-
-
procedureTForm4.vsttreeInitNode(Sender:TBaseVirtualTree;ParentNode,
-
Node:PVirtualNode;varInitialStates:TVirtualNodeInitStates);
-
var
- Data:PMyRec;
-
begin
-
Data:=Sender.GetNodeData(Node);
-
Node.CheckType:=Data^.CheckType;
-
Node.CheckState:=Data^.CheckState;
-
end;
-
-
end.
分享到:
相关推荐
Virtual TreeView是Delphi开发环境中一个非常强大的控件,它被广泛用于构建高效、可定制的树形数据视图。...希望你的示例代码能为其他开发者提供宝贵的参考,帮助他们更好地理解和使用Virtual TreeView。
Virtual TreeView是一款在Windows开发中常用的控件,尤其在.NET框架和Delphi等环境中,它被广泛用于构建高效、可扩展的树形视图。这个控件的主要特点是其虚拟化特性,即仅在需要时加载节点,从而显著提高了处理大量...
一个完整的Virtual TreeView的例子,很好的内容,想用Virtual TreeView的必看
这是对Virtual TreeView使用的最新实例,主要添加了复选框遍历功能,解决了很多的问题。需要安装的组件有:virtual treeview;TMS Component Pack v4.6.0.7 (完整源码)
Virtual Treeview是一款强大的Windows开发控件,主要用于GUI(图形用户界面)设计,它结合了TreeView和ListView的功能,为开发者...开发者可以通过下载并安装"Virtual Treeview V4.4.3.exe"文件来开始使用这个控件。
2. **AlignDemo.dfm**: 这个文件可能包含了一个示例,展示了如何设置 VirtualTreeView 的对齐方式,比如水平、垂直或者填充父容器。对齐设置对于优化界面布局和用户体验至关重要。 3. **VisibilityDemo.dfm**: 可能...
Virtual TreeView是一款专门为Delphi开发环境设计的VCL控件,它在RAD Studio XE3到10.2 Tokyo版本间广泛使用。这个组件因其高效、灵活和强大的特性,在编程界备受推崇,尤其适合处理Treeview及表格类数据的显示。 1...
"VirtualTreeview_Demo.rar"是一个包含VirtualTreeview组件示例程序的压缩包,通过源码的形式,帮助开发者更好地理解和学习如何在实际项目中使用该组件。 VirtualTreeview的核心特性是它的虚拟化机制。在传统的树形...
1. **hxb_leiyuan_AutoLoadTreeview_v1.0.gif**:这可能是一个示例图片,展示了如何使用VirtualTreeview组件实现AutoLoad功能,以及在实际应用中的效果。通过查看此图片,开发者可以直观地理解AutoLoad在界面中的...
- 压缩包中的“VirtualTreeview.5.3.0 D7 - XE7”可能包含以下内容:源代码、帮助文件、示例项目、库文件等。源代码可以让开发者深入理解其工作原理,帮助文件提供使用指南,示例项目则演示了各种功能的实现。 4. ...
在这个例子中,VirtualTreeview被用来显示数据库中的记录,而不是预先加载所有数据,这样可以节省内存并提高响应速度。 数据库应用是指将数据存储和检索功能整合到应用程序中。在这个示例中,可能是使用了如SQLite...
通过深入理解和利用VirtualTreeView控件,开发者可以创建出界面精美、响应快速的树形界面,特别适合在数据管理和浏览场景下使用。无论是对新手还是经验丰富的Delphi开发者来说,VirtualTreeView都是一个强大的工具,...
5. Demos:演示示例代码,通过实际的例子展示如何使用 VirtualTreeView 实现各种功能,是学习的好资料。 6. Packages:包含了编译好的组件包,可以直接导入到 Delphi 工程中使用。 7. Source:源代码,对于希望深入...
9. **文档和示例**:VirtualTreeView 提供详细的文档和示例代码,帮助开发者快速上手和深入理解控件的使用。 在实际项目中,使用 VirtualTreeView 可以显著提升用户界面的性能和交互体验,特别是在处理大量数据的...
4. **Demos**:演示应用程序,展示了控件的各种用法和功能,帮助开发者快速理解和学习如何使用VirtualTreeview。 5. **Source**:源代码目录,提供了控件的完整源码,开发者可以深入研究其工作原理并进行二次开发。...
Virtual Treeview是为软件开发人员设计的,它代表了用高级Delphi树控件从头构建的树视图控件。根据它的制造商,该工具的树管理范例与其他控件不同。 数据是通过事件(或者通过覆盖数据从应用程序中提取的),因为...
10. **文档支持**:VirtualTreeview通常会提供详尽的文档和示例代码,帮助开发者快速理解和使用这个控件,解决开发过程中遇到的问题。 综上所述,VirtualTreeview是一个强大且灵活的.NET控件,适用于处理大量数据或...
这些示例代码是学习如何使用VirtualTreeview的最佳实践,通过它们,开发者可以快速上手并理解如何实现特定功能。 "Source"目录包含了控件的源代码,这对于深入理解其工作原理和进行二次开发至关重要。开发者可以...
安装和使用VirtualTreeView时,会包含以下几个文件和目录: 1. **Packages**:可能包含了编译好的控件库文件,供开发环境如Delphi或C++Builder集成使用。 2. **INSTALL.txt**:提供了详细的安装和配置指南,指导...
在 Delphi 开发环境中,VirtualTreeview 和 TVirtualStringTree 是两种非常强大的控件,尤其适用于处理大量数据的显示和操作。它们提供了列表模式和树形模式,比标准的 TListView 控件更高效且功能更丰富。下面我们...