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)使用方法|实例的更多相关文章

  1. delphi透明panel组件或者制作方法

    //透明Panel控件 unit TranPanel; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, ...

  2. Delphi列表控件TListView定位到某一行。

    ListView1.Item[100].Focused = true; //定位到索引为100的行ListView1.Item[100].Selected = true; ListView1.Item ...

  3. ASP.NET Core 中文文档 第四章 MVC(3.9)视图组件

    作者: Rick Anderson 翻译: 娄宇(Lyrics) 校对: 高嵩 章节: 介绍视图组件 创建视图组件 调用视图组件 演练:创建一个简单的视图组件 附加的资源 查看或下载示例代码 介绍视图 ...

  4. Laravel 5 多个视图共享数据的方法

    我们都知道模板一般会用到继承,导航栏就是一个很好的例子,但是导航栏的数据如何共享,比如有个导航的文件叫在view/navigation.blade.php 为了简单一点,文件里只有设置了一个变量 {{ ...

  5. ASP.NET Core MVC之ViewComponents(视图组件)

    前言 大概一个来星期未更新博客了,久违了各位,关于SQL Server性能优化会和ASP.NET Core MVC穿插来讲,如果你希望我分享哪些内容可以在评论下方提出来,我会筛选并看看技术文档来对你的 ...

  6. ASP.NET Core Razor 视图组件

    视图组件简介 在新的ASP.NET Core MVC中,视图组件类似于局部视图,但它们更强大.视图组件不使用模型绑定,仅依赖于您在调用时提供的数据. 视图组件特性: 呈现页面响应的某一部分而不是整个响 ...

  7. ASP.NET Core MVC之ViewComponents(视图组件)知多少?

    前言 大概一个来星期未更新博客了,久违了各位,关于SQL Server性能优化会和ASP.NET Core MVC穿插来讲,如果你希望我分享哪些内容可以在评论下方提出来,我会筛选并看看技术文档来对你的 ...

  8. ASP.NET Core MVC 之视图组件(View Component)

    1.视图组件介绍 视图组件是 ASP.NET Core MVC 的新特性,类似于局部视图,但它更强大.视图组件不使用模型绑定,并且仅依赖于调用它时所提供的数据. 视图组件特点: 呈块状,而不是整个响应 ...

  9. asp.net core 视图组件(转)

    介绍视图组件 视图组件是 ASP.NET Core MVC 中的新特性,与局部视图相似,但是它们更加的强大.视图组件不使用模型绑定,只取决于调用它时所提供的数据.视图组件有以下特点: 渲染一个块,而不 ...

随机推荐

  1. mongodb教程

    http://sheperd.blog.163.com/blog/static/19525511920119111149046/ http://www.cnblogs.com/oec2003/arch ...

  2. 打patch p0 p1区别

    如何使用patch 对于一个patch文件,有两种常用使用方法: 1.代码:cat new-patch | patch -p0 2.代码:patch -p0 < new-patch   patc ...

  3. COJ 0986 WZJ的数据结构(负十四) 区间动态k大

    题解:哈哈哈我过了!!!主席树+树状数组写起来还真是hentai啊... 在这里必须分享我的一个沙茶错!!!看这段代码: void get(int x,int d){ ]=root[x];x;x-=x ...

  4. 【转】JAVA字符串格式化-String.format()的使用

    原文网址:http://blog.csdn.net/lonely_fireworks/article/details/7962171 常规类型的格式化 String类的format()方法用于创建格式 ...

  5. rowspan和colspan

    1.说明 rowspan:跨行colspan:跨列用于设计复杂的表格 2.例子<!DOCTYPE html> <html> <head> <meta char ...

  6. 哈希表的C语言实现

    首先介绍一下什么是哈希表.同线性表.树一样,哈希表也是一种数据结构,理想情况下可以不需要任何比较,一次存取便能得到所查记录.所以它的优点就是查找特定记录的速度快.因为哈希表是基于数组的,所以创建后就难 ...

  7. Maven可继承的POM 元素

    groupId :项目组 ID ,项目坐标的核心元素: version :项目版本,项目坐标的核心元素: description :项目的描述信息: organization :项目的组织信息: in ...

  8. 数据库 —— mySQL的基本操作

    学习资源: 0.学习教程 :MySQL 教程(runoob.com)   (MySQL Tutorial)turtorialPoint 1.学习帮助手册与平台: MySQL学习平台   英文手册chm ...

  9. 深入理解javascript之this

    javascript中的this含义很丰富,它能够是全局对象,当前对象或者是随意对象,这都取决于函数的调用方式.函数有下面几种调用方式:作为对象方法调用.作为函数调用.作为构造函数调用.apply或c ...

  10. [ES6] Object.assign (with defaults value object)

    function spinner(target, options = {}){ let defaults = { message: "Please wait", spinningS ...