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.
Nom : Capture.PNG
Affichages : 827
Taille : 6,9 Ko
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
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;
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)

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