Page 1 sur 1

[R] Colorer les lignes d'une ListView

Posté : mer. 16 janv. 2013 22:14
par Saachaa
Bonjour ;)

J'ai pas encore trouvé ce que je cherchais...

Je cherche le moyen de d'avoir le texte d'une ligne coloré d'une certaine façon pour chaque ligne dans ma ListView...

Code : Tout sélectionner

If _Service_SetStartType($aSplit[1], $aSplit[2]) = 0 Then
            GUICtrlCreateListViewItem("" & "|" & $nrestored & "|" & $chkbox_label_serv & "|" & $aSplit[1], $listview)
            _GUICtrlListView_SetTextColor($listview, $CLR_RED)
        Else
            GUICtrlCreateListViewItem("" & "|" & $restored & "|" & $chkbox_label_serv & "|" & $aSplit[1], $listview)
            _GUICtrlListView_SetTextColor($listview, $CLR_GREEN)
        EndIf
 
(Pour comprendre le fond)

Une image vaut milles mots :

Image

J'aimerais pouvoir avoir la ligne avec "Non restauré" en rouge.

Il ne semble pas qu'avec _GUICtrlListView_SetTextColor() ce soit possible, à moyen de récupérer un handle sur une ligne donné peut-être ? Je ne le sais pas en tout cas je n'ai pas réussi.

Merci à vous :)

Re: [..] Colorer les lignes d'une ListView

Posté : mer. 16 janv. 2013 22:29
par mikell
^^

Code : Tout sélectionner

GUICtrlCreateListViewItem("" & "|" & $nrestored & "|" & $chkbox_label_serv & "|" & $aSplit[1], $listview)
GUICtrlSetColor(-1, 0xff0000)

Re: [..] Colorer les lignes d'une ListView

Posté : jeu. 17 janv. 2013 09:16
par Saachaa
Si simple que ça... pourquoi faire compliqué quand on peut faire simple :mrgreen:

Merci à toi ;)

Re: [R] Colorer les lignes d'une ListView

Posté : ven. 18 janv. 2013 13:03
par Saachaa
Dis Mikell, t'as un tips ?

Code : Tout sélectionner

_GUICtrlListView_AddSubItem($listview, $r, $fixed, 1)
GUICtrlSetColor(-1, $green)
 
Marche pas avec un SubItem :mrgreen:

Re: [R] Colorer les lignes d'une ListView

Posté : ven. 18 janv. 2013 14:05
par mikell
Ah mais oh, c'est pas pareil là :mrgreen:
Ce que tu veux c'est une coloration sur les subitems et qui soit dynamique en plus

T'as que 2 solutions :
- la simple, où en créant tes items tu stockes leur ID (dans un tableau par exemple) et quand tu rajoutes un subitem tu (re)fais un GUICtrlSetColor sur l'item
- la plus compliquée mais plus fun, ici
http://www.autoitscript.fr/forum/viewto ... 242#p72242

Re: [R] Colorer les lignes d'une ListView

Posté : ven. 18 janv. 2013 14:10
par Saachaa
D'accord... je prends la plus compliqué :)

J'étais déjà tombé sur ton sujet, mais là tu commences à sortir du cadre de mes connaissances !

Je vais regarder ça à tête reposé...

Re: [R] Colorer les lignes d'une ListView

Posté : mer. 23 janv. 2013 20:54
par Saachaa
Re chef !

C'est toi qui a codé ça ? Faut commencer à taquiner le Win32 :mrgreen:

Dis, chez moi la condition n'est jamais égale à 1... (iSubItem)
► Afficher le textecode
Tu peux m'en dire plus ?

Je te donnerais le code qu'il te faut ;-)

Re: [R] Colorer les lignes d'une ListView

Posté : mer. 23 janv. 2013 23:33
par mikell
Oh que non j'ai pas codé ça, j'ai fait comme on fait tous, je me suis servi dans le forum US :mrgreen:

iSubItem est l'index du subitem dans ta listview (2ème colonne, la 1ère est d'index 0)

Re: [R] Colorer les lignes d'une ListView

Posté : jeu. 24 janv. 2013 13:33
par Saachaa
mikell a écrit :iSubItem est l'index du subitem dans ta listview (2ème colonne, la 1ère est d'index 0)
Et bien si je regarde ma capture cela correspond...

Même si j'enlève le if ça ne fonctionne pas alors ça ne doit pas être ça...

Le fait que je créé mes items avec GUICtrlCreateListViewItem() et ma listview avec GUICtrlCreateListView() cela change quelque chose ?

Thx

Re: [R] Colorer les lignes d'une ListView

Posté : jeu. 24 janv. 2013 14:39
par mikell
Oui
Le _GUICtrlListView_Create te retourne un handle, le GUICtrlCreateListView retourne un ID, la gestion est très différente
Pour le genre de fonctionnalité que tu veux il vaut mieux les fonctions _GUICtrlListView_*

Re: [R] Colorer les lignes d'une ListView

Posté : jeu. 24 janv. 2013 21:15
par Saachaa
D'accord ;)

En effet ça semble aller mieux, cependant du coup :

Code : Tout sélectionner

GUICtrlCreateListViewItem("" & "|" & $found & "|" & $chkbox_label_soft & "|" & $keys_enums_name, $listview)
Et bien ne marche plus...

Du coup sais-tu laquelle des fonctions utiliser ?

Le délimiteur "|" m'était bien pratique mais avec _GUICtrlListView_AddItem() ça ne prend pas les délimiteurs et _GUICtrlListView_AddSubItem() m'oblige à utiliser un row...

Re: [R] Colorer les lignes d'une ListView

Posté : jeu. 24 janv. 2013 22:29
par mikell
Ben oui faut utiliser ces 2 fonctions
ça t'oblige juste à faire attention aux index mais c'est tout

Re: [R] Colorer les lignes d'une ListView

Posté : ven. 25 janv. 2013 19:28
par Saachaa
Oui du coup je vais avoir une variable global qui va s'incrémenter pour pouvoir ajouter mes items...

C'était mieux avant :mrgreen:

Edit: Merci je vais regarder tout ça

Re: [R] Colorer les lignes d'une ListView

Posté : ven. 25 janv. 2013 21:02
par Saachaa

Code : Tout sélectionner

Func _ListViewAddItem($handle, $text)
    Local $index = _GUICtrlListView_AddItem($handle, "")
    Local $listsplit = StringSplit($text, "|")

    ;_GUICtrlListView_AddSubItem($handle, $index, $listsplit[1], 0)
    _GUICtrlListView_AddSubItem($handle, $index, $listsplit[2], 1)
    _GUICtrlListView_AddSubItem($handle, $index, $listsplit[3], 2)
    _GUICtrlListView_AddSubItem($handle, $index, $listsplit[4], 3)
EndFunc
 
Paf :)

(je la mets ça peut servir à d'autres)

Edit : Tout fonctionne c'est énorme :)

Merci à toi Mikell, toujours au top !