2009-12-04 141 views
0

我想更新TListView中的值。我tryed這更新TListView項目

... 
lvProcess : TListView; 
liEdit : TlistItem; 
... 
    liEdit:=lvProcess.Items.Item[1]; 
    liEdit.Caption:='11'; 
    liEdit.SubItems.ValueFromIndex[0]:='22'; 
    liEdit.SubItems.ValueFromIndex[1]:='33'; 
... 

這應該做我想做的,但在此之後,該子項的值是這個的人「= 22」和「= 33」 我不想被添加等號做。

任何人都可以幫助我嗎?我不知道這是編輯/更新列表項

感謝

+0

重複http://stackoverflow.com/questions/1293112/how-to-change-a-subitem-in-a-listview - 請在您提出一個新問題之前進行搜索。 – mghie 2009-12-04 14:40:39

+0

@mghie:儘管有相似之處,但這不是您所鏈接問題的重複。 – 2009-12-06 00:43:22

+0

你有一個你應該做什麼的例子;我會解釋出了什麼問題。 TStringList(_SubItems是TStringList_)的一個特性就是它可以存儲'name = value'對。您的代碼設置了前兩個字符串中每個字符串的**值**。沒有爲每個字符串命名,因此您存儲'= value'。 – 2009-12-06 00:50:03

回答

3

你可以嘗試以下的正確方法:

with LvProcess.Items[1] do 
begin 
    Caption := '11'; 
    SubItems.Strings[0] := '22'; 
    SubItems.Strings[1] := '33'; 
end; 

如果你在這一次更新許多項目爲更好地圍繞在更新在這樣的方式:

try 
    lvProcess.Items.BeginUpdate; 

    //Do your updates 
finally 
    lvProcess.Items.EndUpdate; 
end; 
+0

謝謝,我忘了SubItems.Strings :) – 2009-12-04 14:45:32

0

子項目是一個字符串列表,所以如果你要更新的字符串值,這樣做是這樣的:

SubItems[0] := '22' 
SubItems[1] := '33' 

您現在要做的方式是將TStrings用作鍵/值列表。當你需要時,這是TStrings的一個很好的功能,但可能不是你想要的。