2010-11-05 4 views
2

Nous créons une liste avec 5 colonnes. Dans une fonction, nous ajoutons des données dans les 3 premiers cols en séquence. Dans la deuxième fonction, nous voulons ajouter une chaîne à la cinquième col. La colonne 4 peut être vide ou remplie avant la deuxième fonction. Nous voulons simplement ignorer cette colonne et ajouter des données dans la cinquième. Ou la question peut se résumer à vérifier la valeur de la quatrième col. Comment le vérifier? Nous avons essayé si listview.items [i] .SubItems.Strings [2] = '' ..., il va sortir des limites.Comment sauter une colonne et ajouter une chaîne à une autre colonne dans listview?

Veuillez donner quelques conseils à ce sujet. Merci d'avance.

Répondre

3

Vous ne pouvez pas skip une colonne dans un TListView lorsque vous utilisez la propriété item.SubItems, mais vous pouvez affecter une chaîne vide à une colonne.

vous devez procéder comme ceci:

d'abord remplir toujours vos colonnes lorsque vous ajoutez un nouveau 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 

puis dans vos autres fonctions, accédez à n'importe quelle colonne pour vérifier si elle est vide ou pour ajouter des données.

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

Pour ajouter une chaîne à la cinquième colonne du premier élément d'un listview:

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


Pour obtenir la chaîne dans la cinquième colonne du premier élément d'un listview:

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


modifier: Notez que cette méthode d'ajout d'un texte à un sous-élément contourne un mécanisme VCL, par exemple vous pouvez obtenir un 'SubItem.Count' de '0' et avoir toujours le texte sur le sous-élément. Si cela est important, j'utiliserais la méthode de RRUZ.

+0

Merci beaucoup, cher Sertac Akyuz. – Dylan

Questions connexes