2009-08-18 5 views
4

J'ai utilisé Listview.items.item [X] .caption pour changer la première colonne dans une listbox, mais maintenant je dois encore changer à l'exécution. La seule façon dont je vois est de récupérer l'élément de listbox comme TListItem, en le modifiant, ajoutez-le et changez de position, mais cela ne lui convient pas, car j'ai beaucoup d'éléments sur la liste.Comment modifier un sous-élément dans une liste?

Existe-t-il un moyen plus simple d'accomplir cela, comme la façon dont je change le premier élément?

Merci d'avance.

Répondre

8

essayer cette

//Add a item 

var 
    ListItem : TListItem; 
begin 

    ListViewItem.Items.BeginUpdate; 
try 
    ListItem := ListViewItem.Items.Add; 
    ListItem.Caption := 'First Column Value'; 
    ListItem.SubItems.Add('Second Column Value'); 
    ListItem.SubItems.Add('Third Column Value'); 
finally 
ListViewItem.Items.EndUpdate; 
end; 

end; 

//Edit a Item 

var 
    ListItem : TListItem; 
begin 

    ListViewItem.Items.BeginUpdate; 
try 
    ListItem := Listview.items.item[X]; 
    ListItem.Caption := 'New first Column Value'; 
    ListItem.SubItems[0]:='New Second Column Value'; 
    ListItem.SubItems[1]:='New Third Column Value'; 
finally 
ListViewItem.Items.EndUpdate; 
end; 

end; 
+0

John, je pense que c'est ce que vous avez besoin. Si ce n'est pas le cas, vous devrez mieux expliquer la question. Cordialement. –

+2

J'ai une bien meilleure idée. ListView1.Items.item [X] .subitems.Strings [Y]: = 'Chaîne au sous-élément Y de l'élément X'; :) +1 et accepté cependant. –

Questions connexes