2010-11-05 74 views
2

我們創建了一個包含5列的列表視圖。在一個函數中,我們按順序在前3列中添加數據。在第二個函數中,我們要添加字符串到第五列。在第二個功能之前,第4列可以是空白或填充的。我們只想跳過該列並在第五個數據中添加數據。或者這個問題可能歸結爲檢查第四欄的價值。如何檢查?我們嘗試了 如果listview.items [i] .SubItems.Strings [2] =''...,它會提示出界。如何跳過一列並將字符串添加到列表視圖中的另一列?

請給出一些建議。 預先感謝您。

回答

3

當您使用item.SubItems屬性時,您不能skip列中的TListView列,但您可以將空字符串分配給列。

你必須這樣進行:

總是先填寫你的專欄,當你添加一個新的TItemList

item:=listview.Items.Add(); 
item.captiom:='Data col1'; 
item.SubItems.Add('Data col2'); 
item.SubItems.Add('Data col3'); 
item.SubItems.Add('');//empty 
item.SubItems.Add('');//empty 

然後在您的其他功能中,訪問任何列以檢查它是否爲空或用於添加數據。

if listview.Items.Item[0].SubItems[2]<>'' then //check if the fourth column of the listiew is empty 
listview.Items.Item[0].SubItems[2]:='Data col4' //adding the data 
0

將字符串添加到ListView的第一個項目的第五列:

ListView_SetItemText(ListView1.Handle, 0, 4, 'fifth column'); 


要獲得字符串中ListView的第一個項目的第五列:

var 
    ItemText: array [0..259] of Char; 
begin 
    ListView_GetItemText(ListView1.Handle, 0, 4, @ItemText, SizeOf(ItemText)); 
    ShowMessage(ItemText); 


編輯:注意添加文本的子項的這種方法繞過了一些VCL機制,例如你可以得到'SubItem.Count'爲'0',並且在子項上仍然有文本。如果這很重要,我會使用RRUZ的方法。

+0

非常感謝,親愛的Sertac Akyuz。 – Dylan 2010-11-05 16:02:11

相關問題