[R] Colorer les lignes d'une ListView

Aide sur les Interfaces Graphique Utilisateurs (GUI).
Règles du forum
.
Répondre
Saachaa
Niveau 5
Niveau 5
Messages : 142
Enregistré le : dim. 11 mars 2012 23:29
Status : Hors ligne

[R] Colorer les lignes d'une ListView

#1

Message 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 :)
Modifié en dernier par Saachaa le jeu. 17 janv. 2013 09:17, modifié 1 fois.
Avatar du membre
mikell
Spammer !
Spammer !
Messages : 6292
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : Hors ligne

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

#2

Message par mikell »

^^

Code : Tout sélectionner

GUICtrlCreateListViewItem("" & "|" & $nrestored & "|" & $chkbox_label_serv & "|" & $aSplit[1], $listview)
GUICtrlSetColor(-1, 0xff0000)
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
Saachaa
Niveau 5
Niveau 5
Messages : 142
Enregistré le : dim. 11 mars 2012 23:29
Status : Hors ligne

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

#3

Message par Saachaa »

Si simple que ça... pourquoi faire compliqué quand on peut faire simple :mrgreen:

Merci à toi ;)
Saachaa
Niveau 5
Niveau 5
Messages : 142
Enregistré le : dim. 11 mars 2012 23:29
Status : Hors ligne

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

#4

Message 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:
Avatar du membre
mikell
Spammer !
Spammer !
Messages : 6292
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : Hors ligne

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

#5

Message 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
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
Saachaa
Niveau 5
Niveau 5
Messages : 142
Enregistré le : dim. 11 mars 2012 23:29
Status : Hors ligne

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

#6

Message 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é...
Saachaa
Niveau 5
Niveau 5
Messages : 142
Enregistré le : dim. 11 mars 2012 23:29
Status : Hors ligne

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

#7

Message 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 ;-)
Avatar du membre
mikell
Spammer !
Spammer !
Messages : 6292
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : Hors ligne

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

#8

Message 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)
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
Saachaa
Niveau 5
Niveau 5
Messages : 142
Enregistré le : dim. 11 mars 2012 23:29
Status : Hors ligne

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

#9

Message 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
Avatar du membre
mikell
Spammer !
Spammer !
Messages : 6292
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : Hors ligne

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

#10

Message 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_*
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
Saachaa
Niveau 5
Niveau 5
Messages : 142
Enregistré le : dim. 11 mars 2012 23:29
Status : Hors ligne

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

#11

Message 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...
Avatar du membre
mikell
Spammer !
Spammer !
Messages : 6292
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : Hors ligne

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

#12

Message par mikell »

Ben oui faut utiliser ces 2 fonctions
ça t'oblige juste à faire attention aux index mais c'est tout
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
Saachaa
Niveau 5
Niveau 5
Messages : 142
Enregistré le : dim. 11 mars 2012 23:29
Status : Hors ligne

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

#13

Message 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
Saachaa
Niveau 5
Niveau 5
Messages : 142
Enregistré le : dim. 11 mars 2012 23:29
Status : Hors ligne

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

#14

Message 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 !
Répondre