Bonjour,
Un TListWiew propose un Header et un Footer pour chaque Item ou groupe d'item ce qui permet, par exemple, de faire des listes classées en ordre alphabétiques avec, en Header, la première lettre.
Ok, ça avec les livebindings c'est relativement aisé, il y a plusieurs exemples de répertoires sur le net et voici, avec des données disons "aléatoires" une image de ce que je veux exprimer.
Je me suis penché sur les Footers en effet, j'aimerais bien avoir le cumul pour chaque groupe et ce, en bas du groupe. Mais, il n'y a aucun moyen de le faire via livebindings à ma connaissance
Comme vous pourrez le remarquer j'ai réussi à mettre un Footer (en rose) tous les 5 items et ce de la manière suivante
Bien évidemment ce n'est pas ce qu'il me faut puisque ce que je voudrai c'est bien tester sur la première lettre de ma donnée (dans mon image des noms de couleurs)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 procedure TForm13.FormCreate(Sender: TObject); begin i:=1; end; procedure TForm13.LinkListControlToField1FillingListItem(Sender: TObject; const AEditor: IBindListEditorItem); begin begin with ListView1.Items.Add do begin Text := Format('footer %s',['mmmm']); Purpose := TListItemPurpose.Footer; end; i:=1; end else inc(i); end;
La question est là ! Comment obtenir cette valeur dans l'évènement ?
pour l'instant j'ai , à partir de AEditor :
un purpose qui pourrait, à l'occasion, me permettre de savoir s'il s'agit d'un header ou pas,
un CurrentIndex qui me permettrait de vérifier qu'il ne s'agit pas du premier groupe,
une possibilité de transtyper AEditor en TListViewItem
Je ne dois donc pas être très loin de la solution mais ... je vois pas
Partager