Page 1 sur 1
[..] Couleur ASCII dans un label.
Posté : dim. 05 août 2012 12:37
par LqX
Bonjour,
Je rencontre un problème avec l'affichage de texte en couleur ASCII.
J'aimerai afficher ce texte dans un Label en couleur.
► Afficher le texte
Code : Tout sélectionner
5,0ShootMania1 France | 12Support Non-officiel - 4Pré-acheter ShootMania avec 20% de remise !1 - WebSite: - 7 PRACC / TEAM / MIX / PICKUP ...
Re: [..] Couleur ASCII dans un label.
Posté : dim. 05 août 2012 12:45
par TT22
Pour changer la couleur d'un contrôle, il faut utiliser
GUICtrlSetColor().
Un simple recherche dans l'aide t'aurais permis de trouver

.
Voici un exemple :
► Afficher le texte
Code : Tout sélectionner
$Gui = GUICreate("GUI",500,500)
$Label = GUICtrlCreateLabel("5,0ShootMania1 France | 12Support Non-officiel - 4Pré-acheter ShootMania avec 20% de remise !1 - WebSite: - 7 PRACC / TEAM / MIX / PICKUP ...",10,10,480,480)
GUICtrlSetColor($Label,0xFF0000)
GUISetState(@SW_SHOW,$Gui)
While GUIGetMsg() <> -3
WEnd
Re: [..] Couleur ASCII dans un label.
Posté : lun. 06 août 2012 22:12
par LqX
Excusez moi j'ai mal expliquer mon problème.
Je reçois sur mon socket sa :
► Afficher le texte
5,0ShootMania1 France | 12Support Non-officiel - 4Pré-acheter ShootMania avec 20% de remise !1 - WebSite: - 7 PRACC / TEAM / MIX / PICKUP ...
et j'aimerai afficher sa dans un label mais en gérant les couleurs.
C'est a dire : ce texte est un topic sous IRC qui a des partie en couleur, et j'aurai aimer les afficher en couleur dans un label.
Re: [..] Couleur ASCII dans un label.
Posté : mar. 07 août 2012 09:04
par mikell
Ah OK
Donc si j'ai bien compris tu veux afficher des couleurs différentes dans un même texte
Alors d'abord il faudra découper ton texte
Ensuite 2 méthodes possibles :
Pas génial mais facile, faire plusieurs labels ou inputs sans bordure et colorer le texte comme l'a dit TwentyToo
Ou utiliser une RichEdit, exemple :
► Afficher le texte
Code : Tout sélectionner
#include <GuiRichEdit.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
$Form1 = GUICreate("Form1", 200, 100, -1, 100)
$Edit1 = _GUICtrlRichEdit_Create($Form1, "", 10, 10, 180, 60, BitOR($ES_MULTILINE, $ES_READONLY,$WS_VSCROLL))
GUISetState()
_GUICtrlRichEdit_WriteLine($Edit1, "voilà", 0x0088ff)
_GUICtrlRichEdit_WriteLine($Edit1, " mon ", 0x000000)
_GUICtrlRichEdit_WriteLine($Edit1, "texte", 0xff0000)
_GUICtrlRichEdit_WriteLine($Edit1, " en couleurs", 0x00aa00)
While GUIGetMsg()<>-3
WEnd
;===============================================================
;http://www.autoitscript.com/forum/topic/130306-solved-write-to-listbox-in-different-colors
Func _GUICtrlRichEdit_WriteLine($hWnd, $sText, $iColor = -1)
StringReplace(_GUICtrlRichEdit_GetText($hWnd, True), @CRLF, "")
Local $iLines = @extended
Local $iEndPoint = _GUICtrlRichEdit_GetTextLength($hWnd, True, True) - $iLines
_GUICtrlRichEdit_AppendText($hWnd, $sText)
_GuiCtrlRichEdit_SetSel($hWnd, $iEndPoint, -1)
$iColor = Hex($iColor, 6)
$iColor = '0x' & StringMid($iColor, 5, 2) & StringMid($iColor, 3, 2) & StringMid($iColor, 1, 2)
If $iColor <> -1 Then _GuiCtrlRichEdit_SetCharColor($hWnd, $iColor)
_GUICtrlRichEdit_Deselect($hWnd)
EndFunc
Re: [..] Couleur ASCII dans un label.
Posté : mar. 07 août 2012 18:02
par PandiPanda
Je voit aussi une 3ème possibilité
ici
Re: [..] Couleur ASCII dans un label.
Posté : mer. 08 août 2012 18:15
par mikell
Oui, mais pour les couleurs, à moins de se taper à chaque fois la définition de la couleur en code html pour chaque _GuiCtrlTexte_Add, il faudra se bricoler une petite fonction adaptée, ou modifier l'udf un peu comme ça :
► Afficher le texte
Code : Tout sélectionner
;#Include "GuiCtrlTexte.au3" ; http://autoitscript.fr/forum/viewtopic.php?f=21&t=3824 (version timmalos)
#include <GuiConstantsEx.au3>
#include <WindowsConstants.au3>
#include <IE.au3>
Global $hCtrlObj
$txt1 = "AutoIt v3 is a freeware BASIC-like scripting language designed for automating the Windows GUI and general scripting."
$txt2 = "AutoIt was initially designed for PC 'roll out' situations to reliably automate and configure thousands of PCs."
$txt3 = "Scripts can be compiled into stand-alone executables with Aut2Exe."
$GUI = GUICreate("Tab", 600, 400)
$hTexte= _GuiCtrlTexte_Create(5,5,500,300)
_GuiCtrlTexte_Write("<center>Introduction</center>", -1, 7, 1)
_GuiCtrlTexte_Add("" , -1, -1, 1)
_GuiCtrlTexte_Add($txt1 , "cc0000", 3, 0)
_GuiCtrlTexte_Add($txt2 , "00aa00", -1, 1)
_GuiCtrlTexte_Add("" , -1, -1, 1)
_GuiCtrlTexte_Add($txt3 , "0000ff", -1, 1)
GUISetState()
While 1
$msg = GUIGetMsg()
Switch $msg
Case $GUI_EVENT_CLOSE
ExitLoop
EndSwitch
WEnd
;========================================================
Func _GuiCtrlTexte_Add($s_html, $color = "black", $size = -1, $cr = 1)
$s_html = "<font color=#" & $color & " size=" & $size & ">" & $s_html & "</font>"
If $cr = 1 Then $s_html &= "<br>" ; carriage return
Local $Texte = _GuiCtrlTexte_Read()
_IEBodyWriteHTML($hCtrlObj,$Texte & $s_html)
Return 1
EndFunc
Func _GuiCtrlTexte_Create($x,$y,$width = -1 ,$height = -1)
If Int($x) <> $x Or Int($y) <> $y Then Return 0
$hCtrlObj = _IECreateEmbedded()
$hCtrl = GUICtrlCreateObj($hCtrlObj, $x, $y, $width, $height)
_IENavigate ($hCtrlObj, "about:blank")
Return $hCtrl
EndFunc
Func _GuiCtrlTexte_Read()
Return _IEBodyReadHTML($hCtrlObj)
EndFunc
Func _GuiCtrlTexte_Write($s_html, $color = "black", $size = -1, $cr = 1)
$s_html = "<font color=#" & $color & " size=" & $size & ">" & $s_html & "</font>"
If $cr = 1 Then $s_html &= "<br>" ; carriage return
_IEBodyWriteHTML($hCtrlObj, $s_html)
Return 1
EndFunc
Re: [..] Couleur ASCII dans un label.
Posté : jeu. 09 août 2012 14:27
par LqX
Le problème est de détecter les couleurs.
5,0ShootMania1 France | 12Support Non-officiel - 4Pré-acheter ShootMania avec 20% de remise ! 1- Sponsor: 12#mTxServ1 - WebSite:
http://XXX.org
J'essaye de faire cela pour un client IRC, ceci est pour l'affichage et l'édition du TOPIC.
Mais sa ma l'air bien trop compliquer je vais donc laisser tombé la couleur.
Re: [..] Couleur ASCII dans un label.
Posté : jeu. 09 août 2012 18:38
par ani
bonjour,
quel est l'indices de coloration ?
Code : Tout sélectionner
[color=red]5,0[/color]ShootMania1 France | [color=red]12[/color]Support Non-officiel - [color=red]4[/color]Pré....
Car là je ne vois que de simple numero
sinon avez-vous regardé cette include ?
http://autoitscript.fr/forum/viewtopic.php?f=21&t=1462
Re: [..] Couleur ASCII dans un label.
Posté : jeu. 09 août 2012 22:45
par LqX
Ce sont les chiffres mais il y a un caractère juste avant mais que je ne peut pas afficher là.
Re: [..] Couleur ASCII dans un label.
Posté : jeu. 09 août 2012 22:55
par GMH
Bonsoir,
Les codes proposés ci-dessus ne concernant que des edit, faut-il en conclure qu'il n'est pas possible d'afficher plusieurs couleurs à l'intérieur d'un même label (surlignement de tels mots en rouge par exemple, dans un texte en noir), et qu'il faille obligatoirement passer par un edit ?
Re: [..] Couleur ASCII dans un label.
Posté : ven. 10 août 2012 10:34
par ani
Bonjour, ok LqX pourriez-vous attacher en fichier joint un exemple ?
GMH regardez le lien que j'ai fournie avec l'include text_effects.
bonne continuation

Re: [..] Couleur ASCII dans un label.
Posté : ven. 10 août 2012 11:07
par mikell
GMH a écrit :il n'est pas possible d'afficher plusieurs couleurs à l'intérieur d'un même label
Effectivement
text_effects est intéressant mais fonctionne à base de GUICtrlSetColor qui applique la couleur au texte *entier* d'un label (le label est un controle basique qui n'offre que des options simples)