[R] Tri ascendant/descendant d'une ListView avec icônes

Aide sur les Interfaces Graphique Utilisateurs (GUI).
Règles du forum
.
Répondre
Avatar du membre
orax
Modérateur
Modérateur
Messages : 1479
Enregistré le : lun. 23 mars 2009 04:50
Localisation : ::1
Status : Hors ligne

[R] Tri ascendant/descendant d'une ListView avec icônes

#1

Message par orax »

Bonjour, j'ai une ListeView dans laquelle il y a des icônes. Le problème c'est que quand un élément change de place (quand je trie la liste) l'icône de l'élément reste à la même place.

J'ai ajouté _GUICtrlListView_RegisterSortCallBack pour qu'on puisse trier la liste quand on clique sur une colonne. Ca trie bien ma liste mais quand un élément est ajouté, celui-ci n'est pas trier, je dois le faire manuellement (ce que je fais avec la fonction trieListe()). Le problème c'est qu'en faisant comme ça, comme je l'ai dit plus haut, l'icône ne change pas de place.
► Afficher le textepour voir un exemple
Modifié en dernier par orax le ven. 17 avr. 2009 19:44, modifié 2 fois.
De petits détails peuvent faire toute la différence. — Quand la boule de neige commence à rouler… poussez-la. (Columbo)
Avatar du membre
Iste
Niveau 11
Niveau 11
Messages : 1870
Enregistré le : jeu. 04 déc. 2008 14:21
Localisation : 76
Status : Hors ligne

Re: [..] Tri ascendant/descendant d'une ListView avec icônes

#2

Message par Iste »

heu... chez moi ca marche ^^' apres l'ouverture de notepad et avant le message qui dit qu'il y a un probleme, la liste est bien retriée par nom et notepad remonte :/
ou alors j'ai pas compris le probleme ?
Signez ici
Avatar du membre
orax
Modérateur
Modérateur
Messages : 1479
Enregistré le : lun. 23 mars 2009 04:50
Localisation : ::1
Status : Hors ligne

Re: [..] Tri ascendant/descendant d'une ListView avec icônes

#3

Message par orax »

Iste a écrit :heu... chez moi ca marche ^^' apres l'ouverture de notepad et avant le message qui dit qu'il y a un probleme, la liste est bien retriée par nom et notepad remonte :/
ou alors j'ai pas compris le probleme ?
Quand notepad est remonté, son icône n'est pas la bonne (je viens de le préciser dans le code) : notepad prend l'icône d'un autre processus, et le dernier processus dans la liste prend l'icône de notepad. En gros, le nom du processus (notepad.exe) est bien remonté (trié) mais pas son icône.

Je viens de remarquer autre chose : tous les icônes qui suivent notepad.exe (après avoir été trié) sont décalés, ils ne correspondent pas à leur processus.
De petits détails peuvent faire toute la différence. — Quand la boule de neige commence à rouler… poussez-la. (Columbo)
Avatar du membre
Iste
Niveau 11
Niveau 11
Messages : 1870
Enregistré le : jeu. 04 déc. 2008 14:21
Localisation : 76
Status : Hors ligne

Re: [..] Tri ascendant/descendant d'une ListView avec icônes

#4

Message par Iste »

Ha oui, effectivement, j'ai bien le meme bug.
Beh, je jette un coup d'oeil alors, mais si ta fonction d'ini marche, il doit juste avoir un petit bug dans la MAJ de la liste...

Sinon, un peu barbar mais qui marche, tu peux tout supprimer et tout recreer (ca m'a l'air plutot rapide)
Signez ici
GaRydelaMer
Niveau 7
Niveau 7
Messages : 450
Enregistré le : mer. 18 mars 2009 22:12
Localisation : Montpellier
Status : Hors ligne

Re: [..] Tri ascendant/descendant d'une ListView avec icônes

#5

Message par GaRydelaMer »

Bonjour

moi de ce que j'ai compris de ton script, tu fais le tri mais avec 2 fonction différentes.

Au début
_GUICtrlListView_SortItems($hListView, $indexColonne) ; trie une la liste

Puis dans ta fonction Trie

_GUICtrlListView_SimpleSort($hListView, $ordreTrie, $indexColonne)

Peut être que l'erreur viens de la !!!
Avatar du membre
orax
Modérateur
Modérateur
Messages : 1479
Enregistré le : lun. 23 mars 2009 04:50
Localisation : ::1
Status : Hors ligne

Re: [..] Tri ascendant/descendant d'une ListView avec icônes

#6

Message par orax »

Oui, en effet l'erreur viens du fait que j'utilise deux fonctions différentes. Le problème est que quand j'utilise _GUICtrlListView_SortItems() une première fois, il me trie la liste par ordre alphabétique et si je le réutilise une deuxième fois la liste sera trié dans le sens contraire. Visiblement avec cette fonction il n'est pas possible de spécifier l'ordre de tri et c'est pour cette raison que j'avais utilisé une deuxième fonction.
Je crois toutefois que le problème est résolu, cette fois je n'utilise qu'une seule et même fonction.

Merci de votre aide. Je ne sais pas s'il y a un autre moyen de faire mais ça semble fonctionner comme ça.

Voilà les fonctions que j'ai dû ajouter (en gros, j'ai modifié la fonction de tri dans l'UDF qui inversait l'ordre de tri à chaque fois) :
► Afficher le texte
De petits détails peuvent faire toute la différence. — Quand la boule de neige commence à rouler… poussez-la. (Columbo)
Répondre