delphi列表视图组件(TListView)使用方法|实例
TListView 组件以多种形式显示列表的项目,如详细资料、小图标、大图标等形式表示列表中的项目。
列表视图与用TListBox 组件实现的列表框非常相似。不同的是,列表视图可以让用户选择不同的显示方式,诸如大图标方式、小图标方式、简单列表方式和详细列表方式等。Windows XP 的资源管理器就是一个典型的列表视图。
1.TListView 组件的典型用法
列表视图的显示方式是通过ViewStyle 属性设置的。当ViewStyle 属性设为vsReport 时,列表视图将以详细列表的方式显示。以Windows XP 的资源管理器为例,当选中“查看”菜单上的“详细资料”命令时,列表视图中将显示文件或文件夹的图标、名称、字节数、类型和上次修改时间等信息。
以详细列表方式显示时,需要把Columns 属性设为需要的栏数,如果要给每一栏显示一个表头,必须把ShowColumnHeaders 属性设为True。如果把ColumnClick 属性设为True,每一栏的表头就相当于一个按钮,单击这些按钮将触发OnColumnClick 事件。单击“名称”这一栏表头,目录中的文件将按文件名的字母进行排序。单击“大小”这个按钮,目录中的文件将以文件的字节数进行排序。
程序应当为列表视图中的每一项指定图标。因此需要建立两个图像列表,一个用于大图标显示方式,另一个用于小图标显示方式(因为这两种方式下的图标大小是不同的),然后分别设置LargeImages属性和SmallImages 属性指定这两个图像列表。
2.TListView 组件的重要属性
·BoundingRect (边界 矩形)返回一个能把列表视图中所有项包住的矩形
·CheckBoxed (检查 盒装)列表视图中项的旁边将显示复选框
·Column (Column 列)此属性可以访问列表视图中的每一栏
·ColumnClick 此属性设为True 时,将触发OnColumnClick 事件
·Columns 列表视图的每一项将分成很多栏
·DragMode 表示拖动操作的开始方式
DragMode属性的默认值为dmManual, 也就是要在把拖动组件的OnMouseDown事件的处理过程中
调用BeginDrag过程才开始拖动操作,如果将DragMode属性设置为dmAutoMatic,
则鼠标左键在拖动组件上按下后就自动开动拖动操作。
·FlatScrollBars (Flat 平)列表视图的滚动条是平坦的
·FullDrag (全部 拖动)允许用户拖动表头
·GridLines (网格 线)此属性将显示栅格线
·HideSelection (隐藏 选择)当输入焦点移走时,原先选择的节点是否处于被选择状态
·HotTrack (高温赛道)当鼠标指向某个项时,该项的外观将与众不同
·HoverTime (悬停时间)此属性用于设置鼠标必须停留多久才能选择一个项,1000代表1秒
·ItemFocused (项目 聚焦)指定货返回列表视图中具有输入焦点的项
·Items 代表列表视图中的所有项
Items属性用于表示ListView组件的数据项,数据项可用Items属性编辑器输入。
在Items编辑器中有3个按钮:
NewItem 添加数据项
New SubItem 数据项子项
Delete,删除数据项
·LargeImages (大图像)此属性用于指定大图标显示方式下大图标所在的图像列表
·MultiSelect (多选)如果此属性设为True,用户可以同时选择多个项
·ParentBiDiMod 是否使用所属窗口的文字方向模式 指定是否此窗体使用Parent的BiDiMod
·ParentFont 所属窗口字体
·ReadOnly 列表视图是只读的
·RowSelect (行选择)用户可以一次选择一整行
·SelCount 返回列表视图中被选择的项的数目
·Selected (选择)此属性用于设置返回列表视图中被选择的项
·SmallImages (小图)指定小图标显示方式下小图标所在的图像列表
·ShowWorkAreas (显示工作领域)通过定义工作区,可以把图标分组
·SortType (排序类型)此属性用于设置什么情况下列表视图中的项将重新排序
·StateImages (状态图像)此属性用于指定一个图像列表
·TopItem (
顶 项目)返回列表视图中当前可见的最顶端的项
·ViewStyle 设置列表视图的现实方式
ViewStyle(View查看 Style风格)属性
ViewStyle属性用于选择数据项的4种显示方式,因此该属性有4个选项值:
vsIcon 大图标
vsSmallIcon 小图标
vsList 列表
vsReport 详细列表 (Report 报告)。
下面介绍程序中TListView 组件的常用属性。
(1)BoundingRect 属性
此属性返回一个能把列表视图中所有项包住的矩形。此属性仅在ViewStyle 属性设为vsIcon 或vsSmallIcon 时有效。
(2)CheckBoxed 属性
当ViewStyle 属性设为vsList 或vsReport 时,如果把CheckBoxes 属性设为True,列表视图中项的旁边将显示复选框,如同TCheckListBox 组件一样。
(3)Column 属性
此属性可以访问列表视图中每一栏,Index 指定栏的序号。此属性仅当ViewStyle 属性设为vsReport时有效。
(4)ColumnClick 属性
如果此属性设为True,栏的表头(如果有的话)将同时作为按钮用,按下这些按钮,将触发OnColumnClick 事件,通常用于对列表视图中的项进行重新排序。
(5)Columns 属性
如果ViewStyle 属性设为vsReport,列表视图的每一项将分成多栏,每一栏都是一个TListColumn对象,所有的栏构成TListColumn 对象。
在设计期,可以单击Columns 属性旁的省略号“…”按钮打开“Editing Columns”窗口,然后建立和编辑栏的属性。
(6)HideSelection 属性
如果此属性设为True,当输入焦点从列表视图移到其他组件上时,原先选择的节点将不再处于被选择状态。如果此属性设为False,当输入焦点移走时仍然保持选择状态。
(7)ItemFocused 属性
此属性指定或返回列表视图中具有输入焦点的项。一个列表视图中可以同时有多个项被选择,但只能有一个项具有输入焦点。
(8)Items 属性
此属性代表列表视图中的所有项。列表视图中的每一项是一个TListItem 对象。在设计期,可以按下Items 属性旁的“...”按钮打开“ListView Items”编辑器,然后建立和编辑列表视图中的每一项.
(9)MultiSelect 属性
如果此属性设为True,用户可以同时选择多个项。
(10)RowSelect 属性
在ViewStyle 属性设为vsReport 的前提下,如果把此属性设为True,用户可以一次选择一整行。
(11)Selected 属性
此属性用于设置返回列表视图中被选择的项。如果有多项被选择,返回的是当前有输入焦点的项。
(12)ShowWorkAreas 属性
在ViewStyle 属性设为vsIcon 或vsSmallIcon 的情况下,通过定义工作区,可以把图标分组,如果ShowWorkAreas 属性设为True,列表视图将把客户区分成几个工作区,每个工作区的颜色由TWorkArea的Color 属性指定,标签由TWorkArea 的DisplayName 属性指定。
(13)SortType 属性
此属性用于设置什么情况下列表视图中的项将重新排列。它设定了如下4 个用户可选值。
• stNone:不重新排序。
• stData:项的Data 属性发生变化时重新排序。
• stText:项的Caption 属性发生变化时重新排序。
• stBoth:项的Data 属性或Caption 属性发生变化时重新排序。
(14)ViewStyle 属性
此属性用于设置什么情况下列表视图中的项将重新排列。它设定了如下4 个用户可选值。
• vsIcon:以大图标方式显示。
• vsSmallIcon:以小图标方式显示。
• vsList:以简单列表方式显示,不能进行拖放操作。
• vsReport:以详细列表方式显示,最左边的栏显示项的图标和标签。
3.TListView 组件的重要事件
·OnColumnClick 当用户单击栏的表头时,将触发该事件
·OnColumnDragged 当用户用鼠标左键拖动某一栏到一个新的位置时,将触发该事件
·OnEdited 当用户直接编辑修改了项的标签后,将触发该事件
·OnGetImageIndex 当一个项将要在屏幕上刷新时,将触发这个事件
·OnInfoTip 通过这个事件给列表视图中的每一项加上提示
·OnSelectItem 当列表视图中一个项被选择时,将触发这个事件
下面介绍程序中TListView 组件的常用事件。
(1)OnColumnClick 事件
当用户单击栏的表头时,将触发该事件。这样就可以对项进行排序。在OnColumnClick 事件中有一个TListColumn 类型的参数Column,此参数返回用户单击的栏,利用Column 参数可以对用户选中的栏进行访问及设置。
(2)OnColumnDragged 事件
当用户用鼠标左键拖动某一栏到一个新的位置时,将触发该事件。在使用此事件之前必须将TListView 组件的FullTrag 属性设置为True,表示可以拖动栏的位置,否则不能拖动,也就不能触发此事件。
(3)OnEdited 事件
当用户直接编辑修改了项的标签后,将触发该事件。OnEdited 事件中有一个TListItem 类型的参数Item,利用此参数可以对用户编辑的项进行访问;OnEdited 事件中还有一个String 类型的参数S,它是用户更改项的标签后,显示标签的内容。
(4)OnInfoTip 事件
通过这个事件可以为列表视图中的每一项加上提示。OnInfoTip 事件中有一个TListItem 类型的参数Item,利用此参数可以对用户编辑的项进行访问;OnInfoTip 事件中还有一个String 类型的参数InfoTip,更改它的值就可以为每一项加上提示。
例如将每一项的提示设置为项的标签内容,就可以在OnInfoTip 事件中添加如下代码:
InfoTip:=Item.Caption;
如果要显示提示信息,必须将TListView 组件的ShowHind 属性设置为True。
(5)OnSelectItem 事件
当列表视图中一个项被选择时,将触发这个事件。OnSelectItem 事件中有一个TListItem 类型的参数Item,利用此参数可以对用户编辑的项进行访问;OnSelectItem 事件中还有一个Boolean 类型的参数Selected。每次选择一个新项时将两次触发此事件,一次是释放以前被选择的项,Selected 参数取值为False,代表释放Item 参数指定的项;另外一次是选择新的项,Selected 参数取值为True,代表选择Item 参数指定的项。
4.TListView 组件的重要方法
·AlphaSort 将列表视图中的项按标签的字母顺序排序
·Arrange 此方法用于重排图标
·FindCaption 此方法用于搜索并返回一个项
·Scroll 此方法使列表视图滚动
·StringWidth 此方法返回字符串的宽度
·UpdateItems 此方法重画指定范围内的项
下面介绍程序中TListView 组件常用的方法。
(1)AlphaSort 方法
此方法可以将列表视图中的项按标签的字母顺序排序。例如使用下面的代码就能够将ListView1组件的项按标签的字母顺序排序:
ListView1.AlphaSort;
(2)Arrange 方法
此方法用于重排图标。Arrange 方法只有在ViewStyle 属性为vsIcon 或vsSmallIcon 时才起作用。
Arrange 方法中有一个TListArrangement 类型的参数Code,此参数用于指定图标的排列方式,其取值及功能如下。
• arAlignBottom:图标底部对齐排列。
• arAlignLeft:图标左侧对齐排列。
• arAlignRight:图标右侧对齐排列。
• arAlignTop:图标顶部对齐排列。
• arDefault:按照窗口刚建立时的风格将图标从顶部排列。
• arSnapToGrid:将图标对齐到最近的网格,此值不支持虚拟模式。
(3)FindCaption 方法
此方法的调用可以搜索并返回一个TListItem 类型的项。FindCaption 方法中有5 个参数,功能如下。
• StartIndex:Integer 类型,用于指定开始搜索的起始位置。
• Value:String 类型,指定要搜索的项的标题符合的内容。
• Partial:Boolean 类型,取True 值,查找标题开头为Value 参数指定的项;取False 值,查找标题与Value 参数指定的内容相同的项。
• Inclusive:Boolean 类型,取True 值,被StartIndex 指定的项是第1 个被选中的;取False 值,开始查找的位置从StartIndex 拟定的下一个位置开始。
• Warp:Boolean 类型,取True 值,搜索将从开始找到最后;取False 值,搜索从StartIndex 位开始查找,找到最后。
FindCaption 方法返回的是第1 个被找到的符合条件的项,如果没找到符合条件的,则返回列表中的第1 项。
(4)Scroll 方法
此方法可以使列表视图滚动。Scroll 方法有两个Integer 类型的参数。
• DX:控制视图的左右一次移动的像素数,正数代表向右移动,负数代表向左移动。
• DY:控制视图的上下一次移动的像素数,正数代表向下移动,负数代表向上移动。
(5)StringWidth 方法
此方法用于返回字符串的宽度。StringWidth 方法中用到一个String 类型的参数S,StringWidth 方法是根据当前TListView 组件的字体、字号返回参数S 指定的字符串宽度的像素数。
(6)UpdateItems 方法
此方法可以重画指定范围内的项。UpdateItems 有两个Integer 类型的参数:
• FirstIndex:用于指定重画项的开始位置。
• LastIndex:用于指定重画项的最后位置。
//--------------------------------------------------------------------
很关键的,把GridLines网格线设置True则会出现表格线。
很关键的,把ViewStyle视图风格设置为vsReport报表方式。
隐藏列
这样设后, 列11就隐藏了。
delphi列表视图组件(TListView)使用方法|实例的更多相关文章
- delphi透明panel组件或者制作方法
//透明Panel控件 unit TranPanel; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, ...
- Delphi列表控件TListView定位到某一行。
ListView1.Item[100].Focused = true; //定位到索引为100的行ListView1.Item[100].Selected = true; ListView1.Item ...
- ASP.NET Core 中文文档 第四章 MVC(3.9)视图组件
作者: Rick Anderson 翻译: 娄宇(Lyrics) 校对: 高嵩 章节: 介绍视图组件 创建视图组件 调用视图组件 演练:创建一个简单的视图组件 附加的资源 查看或下载示例代码 介绍视图 ...
- Laravel 5 多个视图共享数据的方法
我们都知道模板一般会用到继承,导航栏就是一个很好的例子,但是导航栏的数据如何共享,比如有个导航的文件叫在view/navigation.blade.php 为了简单一点,文件里只有设置了一个变量 {{ ...
- ASP.NET Core MVC之ViewComponents(视图组件)
前言 大概一个来星期未更新博客了,久违了各位,关于SQL Server性能优化会和ASP.NET Core MVC穿插来讲,如果你希望我分享哪些内容可以在评论下方提出来,我会筛选并看看技术文档来对你的 ...
- ASP.NET Core Razor 视图组件
视图组件简介 在新的ASP.NET Core MVC中,视图组件类似于局部视图,但它们更强大.视图组件不使用模型绑定,仅依赖于您在调用时提供的数据. 视图组件特性: 呈现页面响应的某一部分而不是整个响 ...
- ASP.NET Core MVC之ViewComponents(视图组件)知多少?
前言 大概一个来星期未更新博客了,久违了各位,关于SQL Server性能优化会和ASP.NET Core MVC穿插来讲,如果你希望我分享哪些内容可以在评论下方提出来,我会筛选并看看技术文档来对你的 ...
- ASP.NET Core MVC 之视图组件(View Component)
1.视图组件介绍 视图组件是 ASP.NET Core MVC 的新特性,类似于局部视图,但它更强大.视图组件不使用模型绑定,并且仅依赖于调用它时所提供的数据. 视图组件特点: 呈块状,而不是整个响应 ...
- asp.net core 视图组件(转)
介绍视图组件 视图组件是 ASP.NET Core MVC 中的新特性,与局部视图相似,但是它们更加的强大.视图组件不使用模型绑定,只取决于调用它时所提供的数据.视图组件有以下特点: 渲染一个块,而不 ...
随机推荐
- OpenMP 并行化处理测试
OpenMP 并行化处理测试 #pragma omp parallel for 这条语句是用来指定后面的for循环语句变成并行执行的,将for循环里的语句变成并行执行后效率会不会提高呢?还是测试一 下 ...
- 转:Hprose for php(三)——客户端
文章来自于:http://blog.csdn.net/half1/article/details/21329785 本文将介绍Hprose for php客户端的更多细节. 1.直接通过远程方法名进行 ...
- android中几种常见的尺寸
获取屏幕宽高尺寸的三种代码形式 在Android上,目前我知道的获取屏幕尺寸的方法有三种不同的代码形式 方法1.在Activity中最常见的调用方式 WindowManager windowManag ...
- firefox插件poster的使用,发起自定义http请求
快捷键:ctrl+alt+p 在开发WEB程序的时候,经常需要模拟http请求,接收服务器响应,从而检验程序的正确性. Firefox插件poster,可以模拟各种http请求,并详细设置请求参数,比 ...
- perl 正则详解
用/s 来匹配任意字符 默认情况下,点号(.)无法匹配换行符,这对大多数单行匹配的情况是合适的. . 圆点用于匹配除换行符外的任何单个字符 + 意味着一个或多个相同的字符 .+ 匹配任意单个字符至少一 ...
- POJ2586 Y2K Accounting Bug(贪心)
题目链接. 题目大意: 题目相当晦涩难懂啊. 一年的12个月,每5个月统计一次,如从1~5,2~6,3~7,...,8~12共统计了8次,已知每次都deficit,问这一年有没有盈利的可能. 一个月s ...
- app开发历程——android手机显示服务器端图片思路
以前自己都不知道怎么去显示服务器端的图片,还好在apkbus论坛上找到一个特别简单的例子.虽然一天天忙忙碌碌,但是自己内心其实有一种想逃的心里,说不定哪天就会冒出来. 1.首先服务器端图片 这里的Im ...
- 关于 IOS Runtime Runloop 2
Runtime 也就是运行时组件,一个纯C语言写的基础库. 我们平时编写的OC代码中, 程序运行过程时, 其实最终都是转成了runtime的C语言代码 Objective-C编写出来的程序必须得到ru ...
- org.apache.struts.chain.commands.InvalidPathException: No action config found for the specified url.
No action config found for the specified url url路径下找不到action,原因是stuts-config.xml文件配置错误. demo的项目文件如下: ...
- nav标签的作用
. <nav>用来将具有导航性质的链接划分在一起,使代码结构在语义化方面更加准确,同时对于屏幕阅读器等设备的支持也更好.一直以来,我们习惯于使用形如<div id="nav ...