[R] Changer la police ligne(s) ListView

Aide sur les Interfaces Graphique Utilisateurs (GUI).
Règles du forum
.
Répondre
Hugues
Niveau 8
Niveau 8
Messages : 597
Enregistré le : ven. 21 sept. 2012 18:12
Status : Hors ligne

[R] Changer la police ligne(s) ListView

#1

Message 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
Modifié en dernier par Hugues le jeu. 17 oct. 2013 08:45, modifié 1 fois.
Avatar du membre
FireFox
AutoIt MVPs (MVP)
AutoIt MVPs (MVP)
Messages : 217
Enregistré le : dim. 14 oct. 2012 01:30
Localisation : Picardie/Île-de-France, France
Status : Hors ligne

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

#2

Message par FireFox »

Bonjour,
Le lien suivant devrait faire ce que tu cherches : http://www.autoitscript.com/forum/topic ... listviews/

Cdlt, FireFox.
Hugues
Niveau 8
Niveau 8
Messages : 597
Enregistré le : ven. 21 sept. 2012 18:12
Status : Hors ligne

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

#3

Message 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.
Hugues
Niveau 8
Niveau 8
Messages : 597
Enregistré le : ven. 21 sept. 2012 18:12
Status : Hors ligne

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

#4

Message 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:
Avatar du membre
FireFox
AutoIt MVPs (MVP)
AutoIt MVPs (MVP)
Messages : 217
Enregistré le : dim. 14 oct. 2012 01:30
Localisation : Picardie/Île-de-France, France
Status : Hors ligne

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

#5

Message 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.
Hugues
Niveau 8
Niveau 8
Messages : 597
Enregistré le : ven. 21 sept. 2012 18:12
Status : Hors ligne

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

#6

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

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

#7

Message 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
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
Hugues
Niveau 8
Niveau 8
Messages : 597
Enregistré le : ven. 21 sept. 2012 18:12
Status : Hors ligne

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

#8

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

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

#9

Message 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
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
Hugues
Niveau 8
Niveau 8
Messages : 597
Enregistré le : ven. 21 sept. 2012 18:12
Status : Hors ligne

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

#10

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

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

#11

Message 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 :?
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
Hugues
Niveau 8
Niveau 8
Messages : 597
Enregistré le : ven. 21 sept. 2012 18:12
Status : Hors ligne

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

#12

Message par Hugues »

J'ai essayé

Code : Tout sélectionner

_WinAPI_RedrawWindow($hListView2, "", "", BitOR($RDW_INVALIDATE, $RDW_UPDATENOW))
, mais sans succès... :|
Hugues
Niveau 8
Niveau 8
Messages : 597
Enregistré le : ven. 21 sept. 2012 18:12
Status : Hors ligne

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

#13

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