J'ai réalisé une TListViewen vsReport où les colonnes sont activables/désactivables et l'ordre peut être changé par glissé/déposé (comme sous l'Explorateur Windows quoi)
Mais je tombe sur un comportement bizarre : quand on change l'ordre des colonnes, Delphi ajuste aussi tout seul l'affichage des éléments de la ListView. Mais cela n'est que visuel, car les subItems sont toujours selon l'ordre d'origine et il devient forcément impossible de s'y retrouver.
Pour donner un exemple :
* On part avec les colonnes "A" et "B"
* Par glissé/déposé on interverti leur ordre (ceci est alors reflèté dans TlistView.Columns dont l'ordre à changé)
* On créé alors un élément TListItem dans la liste, le texte dans Caption apparait alors dans la colonne "A" (qui est maintenant la seconde à l'écran) et le texte de subItem[0] apparait dans la colonne "B" (donc dans la première colonne visuellement)
Cela peut sembler de prime abord pratique, le problème c'est que quand l'utilisateur à réorganisé quelques colonnes, ajouté et supprimés quelques unes, je n'ai plus aucun moyen de savoir a quelle colonne correspond le caption ou subitem[x] d'un ListItem. Même en vidant avec ListView.Clear et en repeuplant le contenu, ou bien en supprimant toutes les colonnes pour les reconstruires, l'ordre d'affichage est toujours défait !
Partager