Page 1 sur 1
[R] Comment coloriser du texte
Posté : jeu. 20 janv. 2011 23:12
par jl56
Bonjour à tous
Je cherche pour rendre, plus lisible, le moyen de coloriser du texte dans un input ou un edit
un peu comme la colorisation du code dans scite
ex. 16H30 16h45début process 16h50 fin process/18h00 arrêt du pc
Merci de votre aide
A+ JL56
ps: dans la recherche les mots "couleur texte" me dit que c'est trop communs
Re: [..] Comment coloriser du texte
Posté : ven. 21 janv. 2011 00:04
par TommyDDR
Malheureusement en AutoIt il me semble que ca ne soit pas possible, il existe cependant un UDF qui créé plusieurs label (chaqun de la couleur souhaité) Si cela ne vous dérange pas d'avoir autant de label que de changement de couleur, essayez de le trouver (fonction recherche du site)
Je n'ai plus le lien en tête, désolé.
Re: [..] Comment coloriser du texte
Posté : ven. 21 janv. 2011 00:24
par zeshrek
Sinon, il y a la solution d'utiliser une ListView, ce qui permet de donner a chaque colonne une couleur.
Enfin, si tu veux vraiment de la mise en forme, convertit ton texte en HTML pour l'afficher dans un objet IE
Tout dépends de ce que tu veux faire.
Re: [..] Comment coloriser du texte
Posté : ven. 21 janv. 2011 00:32
par Tlem
Re: [..] Comment coloriser du texte
Posté : ven. 21 janv. 2011 09:01
par Laddy
Bonjour
je ne sais pas si ça peut aider mais dans un de mes codes, je lis et extrais les éléments voulus de mon fichier txt puis en fonction du résultat je choisis d'afficher dans input la couleur verte ou rouge.
Code : Tout sélectionner
$file = FileOpen("info.txt", 0)
While 1
$line = FileReadLine($file)
If @error Then ExitLoop
If StringLeft($line, 11) = "Accessible:" Then $String2 = StringTrimLeft($line, 22)
Wend
If StringUpper($String2) = "yes" Then
GUICtrlSetColor($Valid, 0x00ff00) ; green VM Ok
GUICtrlSetData($Valid, $String2)
Else
GUICtrlSetColor($Valid, 0xff0000) ; Red VM Non accessible
GUICtrlSetData($Valid, $String2)
EndIf
Re: [..] Comment coloriser du texte
Posté : ven. 21 janv. 2011 22:22
par bloodwolff
Les limites d'autoit , pour le moment je pense pas que ce soit possible malheureusement !
Re: [..] Comment coloriser du texte
Posté : sam. 22 janv. 2011 03:49
par jl56
Bonjour à tous,
ouah il est tôt
Bon et bien merci à tous et surtout à Thierry
En effet c'est bien une notion de richedit et encore une fois la solution est directement dans l'aide d'AUTOIT
Je regarderais dans l'aide avant de poster sur le forum,Je regarderais dans l'aide avant de poster sur le forum,Je regarderais dans l'aide avant de poster sur le forum,Je regarderais dans l'aide avant de poster sur le forum,Je regarderais dans l'aide avant de poster sur le forum,Je regarderais dans l'aide avant de poster sur le forum,Je regarderais dans l'aide avant de poster sur le forum.
Voila c'est fait, avec une petite claque ( en plus ça réveil )
Je vous donne un code d'exemple c'est très instructif
► Afficher le texte
Code : Tout sélectionner
#AutoIt3Wrapper_Au3Check_Parameters= -d -w 1 -w 2 -w 3 -w 4 -w 5 -w 6
#include <GuiRichEdit.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <Color.au3>
Opt('MustDeclareVars', 1)
Global $lblMsg, $hRichEdit
Global $blue = 0XFFFF00
Global $Green = 0X008000
Global $Red = 0X0000FF
Global $White = 0XFFFFFF
Global $Black = 0X000000
Main()
Func Main()
Local $hGui, $iMsg, $btnNext, $iStep = 0
$hGui = GUICreate("Example (" & StringTrimRight(@ScriptName, 4) & ")", 420, 260, -1, -1)
$hRichEdit = _GUICtrlRichEdit_Create($hGui, "", 10, 10, 400, 220, _
BitOR($ES_MULTILINE, $WS_VSCROLL, $ES_AUTOVSCROLL))
$lblMsg = GUICtrlCreateLabel("", 10, 255, 300, 60)
$btnNext = GUICtrlCreateButton("Coloriser ce texte", 270, 230, 100, 20)
GUISetState()
_GUICtrlRichEdit_SetText($hRichEdit, "16H3016h45début process 16h50 fin process/18h00 arrêt du pc")
While True
$iMsg = GUIGetMsg()
Select
Case $iMsg = $GUI_EVENT_CLOSE
GUIDelete()
Exit
Case $iMsg = $btnNext
_GUICtrlRichEdit_SetSel($hRichEdit, 0, 5)
_GUICtrlRichEdit_SetCharColor($hRichEdit, $White)
_GUICtrlRichEdit_SetCharBkColor($hRichEdit, $Green)
_GUICtrlRichEdit_SetSel($hRichEdit, 5, 10)
_GUICtrlRichEdit_SetCharColor($hRichEdit, $Black)
_GUICtrlRichEdit_SetCharBkColor($hRichEdit, $blue)
_GUICtrlRichEdit_SetSel($hRichEdit, 24, 29)
_GUICtrlRichEdit_SetCharColor($hRichEdit, $Black)
_GUICtrlRichEdit_SetCharBkColor($hRichEdit, $blue)
_GUICtrlRichEdit_SetSel($hRichEdit, 41, 47)
_GUICtrlRichEdit_SetCharColor($hRichEdit, $White)
_GUICtrlRichEdit_SetCharBkColor($hRichEdit, $Red)
_GUICtrlRichEdit_Deselect($hRichEdit)
EndSelect
WEnd
EndFunc ;==>Main
A+ JL56
Re: [R] Comment coloriser du texte
Posté : sam. 22 janv. 2011 05:41
par bloodwolff
Ouah ! Mais j'en apprend des trucs !
Re: [R] Comment coloriser du texte
Posté : sam. 22 janv. 2011 07:56
par GELDROC
bonjours voici un second exemple un peut plus complexe mais plus évolutif .
il faut savoir que le RichEdit utilise le format RTF et il possède des commande pour charger un fichier .rtf ou bien enregistré en un fichier .rtf ou bien même charger un rtf a partir d'une variable donc je tes mis un début de Script en application
ci tu a besoin d'un peu plus d'explication n’hésite pas a me poser des question en priver
► Afficher le texte
Code : Tout sélectionner
#include <WindowsConstants.au3>
#include <GuiRichEdit.au3>
OnAutoItExitRegister("_Exit")
Global $RTF = '{\*\generator Msftedit 5.41.15.1507;}\viewkind4\uc1\pard\f0'
Global $RTF_ColorTbl = '{\colortbl ;\red255\green255\blue255;'
Global $RTF_StyleTbl = '{\f0\fswiss\fcharset0 OCR A Std;}'
Global $iColorTbl = 1
Global $RichCRLF = '\par '
$GUI = GUICreate("Cmd.exe", 700, 400, -1, -1, -1, $WS_EX_TOOLWINDOW)
GUISetState()
$MyEdit = _GUICtrlRichEdit_Create($GUI , "", 1, 1, 698, 398, _
BitOR($ES_MULTILINE, $WS_VSCROLL, $ES_AUTOVSCROLL, $ES_READONLY), 0x00000100)
_GUICtrlRichEdit_SetBkColor($MyEdit, 0x000000)
_GUICtrlRichEdit_SetFont($MyEdit, 10, "OCR A Std")
GUISetState()
Sleep(500)
_RichEdit_AddTexte($MyEdit, "ceci est un test" & $RichCRLF, '\red255\green0\blue255')
Sleep(500)
_RichEdit_AddTexte($MyEdit, "ceci est un test", '\red0\green0\blue255')
Sleep(500)
_RichEdit_AddTexte($MyEdit, "ceci est un test" & $RichCRLF, '\red255\green0\blue0')
While 1
If GUIGetMsg() = -3 Then _Exit()
WEnd
Func _Exit()
_GUICtrlRichEdit_Destroy($MyEdit)
Exit
EndFunc
Func _RichEdit_AddTexte($CtrlID, $Texte, $ColorFormat)
$iColorTbl = $iColorTbl + 1
$RTF_ColorTbl = $RTF_ColorTbl & $ColorFormat & ';'
$RTF = $RTF & '\fs20\f0\cf' & $iColorTbl & ' ' & $Texte
_GUICtrlRichEdit_PauseRedraw($CtrlID)
_GUICtrlRichEdit_StreamFromVar($CtrlID, '{\rtf1\ansi\ansicpg1252\deff0\deflang1036{\fonttbl ' & $RTF_StyleTbl & '}' & $RTF_ColorTbl & '}' & $RTF & '}')
_GUICtrlRichEdit_GotoCharPos($CtrlID, -1)
_GUICtrlRichEdit_ResumeRedraw($CtrlID)
EndFunc
Re: [R] Comment coloriser du texte
Posté : sam. 22 janv. 2011 08:36
par Ahbadiane
GELDROC,
Ton exemple plante sur mon PC sous Windows 7 avec le message "AutoIt V3 Script a cessé de fonctionner".
D'ailleurs l'exemple dans l'aide de _GUICtrlRichEdit_StreamFromVar plante de la même façon !
Une idée ?
Re: [R] Comment coloriser du texte
Posté : sam. 22 janv. 2011 20:32
par GELDROC
commence par vérifier ta version d'AutoIt sinon je c'est pas Désoler
Re: [R] Comment coloriser du texte
Posté : sam. 22 janv. 2011 22:04
par Ahbadiane
GELDROC,
Je suis en version 3.3.6.0
Re: [R] Comment coloriser du texte
Posté : sam. 22 janv. 2011 22:50
par GELDROC
moi aussi bizarre je c'est pas désoler
Re: [R] Comment coloriser du texte
Posté : dim. 23 janv. 2011 09:39
par GELDROC
ha oui je me souviens que ci je supprime cette ligne a la fermeture du script et bien alors cela fait moi aussi planter mon win