LISTVIEW TRIÉE QUAND ON CLIQUE SUR L'ENTÊTE, COULEUR DIFFÉRENTE UNE LIGNE/COLONN

Messages postés
1708
Date d'inscription
vendredi 27 décembre 2002
Statut
Modérateur
Dernière intervention
5 octobre 2019
- - Dernière réponse : bubulemaster
Messages postés
22
Date d'inscription
jeudi 1 avril 2004
Statut
Membre
Dernière intervention
22 mars 2010
- 1 avril 2008 à 16:52
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/45426-listview-triee-quand-on-clique-sur-l-entete-couleur-differente-une-ligne-colonne-sur-deux

Afficher la suite 
bubulemaster
Messages postés
22
Date d'inscription
jeudi 1 avril 2004
Statut
Membre
Dernière intervention
22 mars 2010
-
Super idée merci.
hill_piper
Messages postés
1
Date d'inscription
mardi 23 janvier 2007
Statut
Membre
Dernière intervention
1 avril 2008
-
D'abord merci pour ce listview que j'ai déjà adopté.
Si je peux me permettre, j'aurais ajouter un ELSE dans la procedure :

TAdvancedListView.AdvancedListViewColumnClick(Sender: TObject; Column: TListColumn);

...
(ligne 602 si je ne me trompe pas)...
...

if (NumSubItem < temp.Item[j].SubItems.Count) and ((Sender as TListView).Items.Item[i].SubItems.Count > NumSubItem)

then
Condition := (Sender as TListView).Items.Item[i].SubItems.Strings[NumSubItem] <
temp.Item[j].SubItems.Strings[NumSubItem]
else
if (NumSubItem < temp.Item[j].SubItems.Count) then Condition := True else Condition:= False;

ça permet de trier sur des colonnes du listview dont l'index dépasse le nombre de subitems de l'enregistrement en cours de tri. Les subitems manquant sont traités comme s'il s'agissait de chaines vides (tri croissant : les vides au début ; tri décroissant : les vides à la fin)
japee
Messages postés
1708
Date d'inscription
vendredi 27 décembre 2002
Statut
Modérateur
Dernière intervention
5 octobre 2019
1 -
Il manque le zip !