Page 1 sur 1

[R] Changer la police ligne(s) ListView

Posté : mer. 09 oct. 2013 15:05
par Hugues
Bonjour,

Voilà je récupère les données d'un fichier pour les mettre dans une ListView.

Je voudrais que lorsque fichier est lu, s'il trouve le terme "NIO", il me mette la police en gras et en rouge...

Je fais:

Code : Tout sélectionner

If StringInStr($sString, "NIO") Then
_GUICtrlListView_SetTextColor($hListView, $CLR_RED)
 
mais ça ne fonctionne pas... ça me met tout mon texte en rouge...

Ci joint le code:
► Afficher le texte

Re: [..] Changer la police ligne(s) ListView

Posté : mer. 09 oct. 2013 15:43
par FireFox
Bonjour,
Le lien suivant devrait faire ce que tu cherches : http://www.autoitscript.com/forum/topic ... listviews/

Cdlt, FireFox.

Re: [..] Changer la police ligne(s) ListView

Posté : jeu. 10 oct. 2013 11:44
par Hugues
Merci beaucoup.

Par contre j'arrive bien à le faire fonctionne dans un programme simple, mais dans mon application dans laquelle je veux l'intégrer ça ne fonctionne pas :shock: :shock: :shock:

Code OK:
► Afficher le texte
Un bout de mon autre programme dans lequel je t'ente d'intégrer:
► Afficher le texte
Merci.

Re: [..] Changer la police ligne(s) ListView

Posté : jeu. 10 oct. 2013 13:39
par Hugues
Y'a du mieux... J'ai oublié de mettre

Code : Tout sélectionner

Case $hLV
            Switch $iCode
Gnéééé :mrgreen:

Par contre phénomène bizarre... Ca colorie pas au moment de le génération de ma ListView mais ça change de couleur quand je clique sur le ligne qui devrais se colorier... :cry: :shock: :twisted:

Re: [..] Changer la police ligne(s) ListView

Posté : jeu. 10 oct. 2013 15:39
par FireFox
Hugues a écrit : Par contre phénomène bizarre... Ca colorie pas au moment de le génération de ma ListView mais ça change de couleur quand je clique sur le ligne qui devrais se colorier... :cry: :shock: :twisted:
Essaye un _WinAPI_RedrawWindow en passant le handle de la listview.

Cdlt, FireFox.

Re: [..] Changer la police ligne(s) ListView

Posté : ven. 11 oct. 2013 12:59
par Hugues
:twisted: :evil: Grrr Je tourne en rond... En plus vient se greffer un problème avec la ligne

Code : Tout sélectionner

If $aColors[$dwItemSpec] Then
.

Pfff please help... :o

Re: [..] Changer la police ligne(s) ListView

Posté : sam. 12 oct. 2013 12:52
par mikell
C'est ben compliqué tout ça...
► Afficher le texte
NB : Faut pas se tromper de Switch, Case $NM_CUSTOMDRAW teste un $iCode, pas un $hWndFrom

Re: [..] Changer la police ligne(s) ListView

Posté : lun. 14 oct. 2013 12:05
par Hugues
Je dois être franchement très c** :twisted: :twisted:
Je n'arrive pas à le faire fonctionner...

D'une part, dans mon code j'ai:

Code : Tout sélectionner

    $hListView2 = GUICtrlCreateListView("", 664, 8, 337, 529, BitOR($GUI_SS_DEFAULT_LISTVIEW, $LVS_NOCOLUMNHEADER), BitOR($WS_EX_CLIENTEDGE, $LVS_EX_FULLROWSELECT)) 
contre

Code : Tout sélectionner

$hListView = _GUICtrlListView_Create($hGUI, "Items|SubItems|", 10, 10, 280, 180, $LVS_REPORT, $WS_EX_CLIENTEDGE)
 
Si je met _GUICtrlListView_Create() au lieu de GUICtrlCreateListView(), la mise en forme de ma ListView est complètement faussée... Pfff

Après je pense que mon programme doit être mal structuré pour que ça ne fonctionne pas...
► Afficher le texte
Désolé de vous ennuyer par mon incompetence... :oops:

Re: [..] Changer la police ligne(s) ListView

Posté : lun. 14 oct. 2013 12:49
par mikell
Nope, tu es juste un peu distrait :mrgreen:
Et tu percutes toujours pas sur la différence entre id et handle
Alors bon, oblige-toi à utiliser cette syntaxe :

Code : Tout sélectionner

[color=#BF0000]$ListView[/color] est un [color=#BF0000]id[/color]
$ListView = GUICtrlCreateListView(...)
; [color=#BF0000]$hListView[/color] est un [color=#BF0000]handle[/color] et tu le repères à cause du [color=#BF0000]"h"[/color] de début 
$hListView = GuiCtrlGetHandle($ListView)
; tu remarqueras que _GUICtrlListView_Create retourne un handle
$[color=#BF0000]h[/color]ListView = _GUICtrlListView_Create(...)
Pas de "h" => c'est un id , Ya un "h" => c'est un handle
Tu fais ça à la création de ta listview :

Code : Tout sélectionner

$ListView = GUICtrlCreateListView(....)
$hListView = GuiCtrlGetHandle($ListView)
; suite du script
comme ça ensuite tu as la paix, tu utilises l'un ou l'autre selon ce que réclame (id ou handle) la fonction que tu emploies (bien lire la page concernée du fichier d'aide) :wink:
Exemple
► Afficher le texte

Re: [..] Changer la police ligne(s) ListView

Posté : mar. 15 oct. 2013 11:23
par Hugues
Pfff, y arrive pas... :shock: :roll: :twisted:

Je ne comprends vraiment pas ce qui ne fonctionne pas...

Ca me change mon item que lorsque je clique sur la ligne ou fait defiler avec les flèches mais pas au moment de la génération de ma ListView... :shock:

Ca doit vnir de ma fonction WM_NOTIFY mais où? Je suis sec...
► Afficher le texte

Re: [..] Changer la police ligne(s) ListView

Posté : mar. 15 oct. 2013 14:18
par mikell
Hmmm
Essaie un

Code : Tout sélectionner

_WinAPI_RedrawWindow($hListView2, "", "", BitOR($RDW_INVALIDATE, $RDW_UPDATENOW))
juste après le remplissage de la listview2
Si ça ne marche pas, c'est probablement ailleurs dans le code et là pour pouvoir te répondre il faudrait que tu postes un script fonctionnel, seul moyen de trouver où ça chie :?

Re: [..] Changer la police ligne(s) ListView

Posté : mar. 15 oct. 2013 20:49
par Hugues
J'ai essayé

Code : Tout sélectionner

_WinAPI_RedrawWindow($hListView2, "", "", BitOR($RDW_INVALIDATE, $RDW_UPDATENOW))
, mais sans succès... :|

Re: [..] Changer la police ligne(s) ListView

Posté : jeu. 17 oct. 2013 09:13
par Hugues
All right, sujet résolu.

Code : Tout sélectionner

_WinAPI_RedrawWindow($MainGui, "", "", BitOR($RDW_INVALIDATE, $RDW_UPDATENOW))
Merci Mikell pour ta précieuse aide! :mrgreen: