TListView 組件以多種形式顯示列表的項目,如詳細資料、小圖標、大圖標等形式表示列表中的項目。
列表視圖與用TListBox 組件實現的列表框很是類似。不一樣的是,列表視圖可讓用戶選擇不一樣的顯示方式,諸如大圖標方式、小圖標方式、簡單列表方式和詳細列表方式等。Windows XP 的資源管理器就是一個典型的列表視圖。
1.TListView 組件的典型用法
列表視圖的顯示方式是經過ViewStyle 屬性設置的。當ViewStyle 屬性設爲vsReport 時,列表視圖將以詳細列表的方式顯示。以Windows XP 的資源管理器爲例,當選中「查看」菜單上的「詳細資料」命令時,列表視圖中將顯示文件或文件夾的圖標、名稱、字節數、類型和上次修改時間等信息。
以詳細列表方式顯示時,須要把Columns 屬性設爲須要的欄數,若是要給每一欄顯示一個表頭,必須把ShowColumnHeaders 屬性設爲True。若是把ColumnClick 屬性設爲True,每一欄的表頭就至關於一個按鈕,單擊這些按鈕將觸發OnColumnClick 事件。單擊「名稱」這一欄表頭,目錄中的文件將按文件名的字母進行排序。單擊「大小」這個按鈕,目錄中的文件將以文件的字節數進行排序。
程序應當爲列表視圖中的每一項指定圖標。所以須要創建兩個圖像列表,一個用於大圖標顯示方式,另外一個用於小圖標顯示方式(由於這兩種方式下的圖標大小是不一樣的),而後分別設置LargeImages屬性和SmallImages 屬性指定這兩個圖像列表。
2.TListView 組件的重要屬性html
·BoundingRect (邊界 矩形)返回一個能把列表視圖中全部項包住的矩形編輯器
·CheckBoxed (檢查 盒裝)列表視圖中項的旁邊將顯示覆選框ide
·Column (Column 列)此屬性能夠訪問列表視圖中的每一欄字體
·ColumnClick 此屬性設爲True 時,將觸發OnColumnClick 事件
·Columns 列表視圖的每一項將分紅不少欄url
·DragMode 表示拖動操做的開始方式spa
DragMode屬性的默認值爲dmManual, 也就是要在把拖動組件的OnMouseDown事件的處理過程當中設計
調用BeginDrag過程纔開始拖動操做,若是將DragMode屬性設置爲dmAutoMatic,3d
則鼠標左鍵在拖動組件上按下後就自動開動拖動操做。
xml
·FlatScrollBars (Flat 平)列表視圖的滾動條是平坦的
·FullDrag (所有 拖動)容許用戶拖動表頭
·GridLines (網格 線)此屬性將顯示柵格線
·HideSelection (隱藏 選擇)當輸入焦點移走時,原先選擇的節點是否處於被選擇狀態
·HotTrack (高溫賽道)當鼠標指向某個項時,該項的外觀將不同凡響
·HoverTime (懸停時間)此屬性用於設置鼠標必須停留多久才能選擇一個項,1000表明1秒
·ItemFocused (項目 聚焦)指訂貨返回列表視圖中具備輸入焦點的項
·Items 表明列表視圖中的全部項htm
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報表方式。
隱藏列