[R] Couleur texte dans GUICtrlCreateInput
Règles du forum
- Merci de consulter la section "Règles du forum" et plus particulièrement "Règles et Mentions Légales du site autoitscript.fr" avant d'écrire un message.
[R] Couleur texte dans GUICtrlCreateInput
Bonjour
je voudrais savoir si il est possible de changer la couleur du texte affiché par GUICtrlSetData dans une GUICtrlCreateInput ?
J'ai cherché sur le forum, mes mots clés sont trop génériques.
L'aide de autoit ne me donne pas mieux.
J'ai tenté de mettre : GUICtrlSetColor(-1, 0xff0000) ; Red
Mais cela agit uniquement sur les labels de la GUI, ce qui est logique.
http://www.imabox.fr/upload/1015121548g ... 7ufR42.png
Merci d'avance.
Laddy
je voudrais savoir si il est possible de changer la couleur du texte affiché par GUICtrlSetData dans une GUICtrlCreateInput ?
J'ai cherché sur le forum, mes mots clés sont trop génériques.
L'aide de autoit ne me donne pas mieux.
J'ai tenté de mettre : GUICtrlSetColor(-1, 0xff0000) ; Red
Mais cela agit uniquement sur les labels de la GUI, ce qui est logique.
http://www.imabox.fr/upload/1015121548g ... 7ufR42.png
Merci d'avance.
Laddy
Modifié en dernier par Laddy le ven. 17 déc. 2010 08:31, modifié 1 fois.
- zeshrek
- Niveau 10

- Messages : 984
- Enregistré le : mer. 17 nov. 2010 09:31
- Localisation : Sur ma chaise
- Status : Hors ligne
Re: [..] Couleur texte dans GUICtrlCreateInput
Comme je sais pas si tu veux mettre le texte ou le fond de l'input box en couleur, je te donne les deux :
Chez moi ca marche tres bien...
Code : Tout sélectionner
$Input1 = GUICtrlCreateInput("Input1", 100, 100, 100, 20)
GUICtrlSetColor(-1, 0xFF0000) ; couleur du texte en rouge
GUICtrlSetBkColor(-1, 0xFFFF00) ; couleur du fond de l'input en jauneSi vis pacem para bellum
Re: [..] Couleur texte dans GUICtrlCreateInput
Bonjour Zeshrek
en fait je veux changer la couleur du texte dans l'input en fonction du résultat lu.
En vert lorsque c'est noté yes
en rouge lorsque c'est noté no.
J'avais fait ceci
Mais apparemment je m'y prend mal
en fait je veux changer la couleur du texte dans l'input en fonction du résultat lu.
En vert lorsque c'est noté yes
en rouge lorsque c'est noté no.
J'avais fait ceci
Code : Tout sélectionner
$Valid = GUICtrlCreateInput("", 376, 184, 177, 21)
IF $String2= "yes" then
GUICtrlSetColor(-1, 0x00ff00) ; green
GUICtrlSetData($Valid,$String2)
Else
GUICtrlSetColor(-1, 0xff0000) ; Red
GUICtrlSetData($Valid,$String2)
EndIf- zeshrek
- Niveau 10

- Messages : 984
- Enregistré le : mer. 17 nov. 2010 09:31
- Localisation : Sur ma chaise
- Status : Hors ligne
Re: [..] Couleur texte dans GUICtrlCreateInput
Heuuuu... d'ou vient $string2 ? Parceque sur le bout de code que tu donnes, on voit pas comment cette variable est initialisée...
De plus, si la valeur de $string2 est "Yes" ou "YES" la condition ne sera pas validée, a cause des majuscules. Fais plutot ton test en forcant le tout en majuscules (ou en minuscules) :
De plus, si la valeur de $string2 est "Yes" ou "YES" la condition ne sera pas validée, a cause des majuscules. Fais plutot ton test en forcant le tout en majuscules (ou en minuscules) :
Code : Tout sélectionner
IF StringUpper($String2)= "YES" thenSi vis pacem para bellum
Re: [..] Couleur texte dans GUICtrlCreateInput
Oh oui pardon.
$String provient de l'extraction d'un fichier txt .
Source du sujet : http://autoitscript.fr/forum/viewtopic.php?f=3&t=6456
$String provient de l'extraction d'un fichier txt .
Source du sujet : http://autoitscript.fr/forum/viewtopic.php?f=3&t=6456
Code : Tout sélectionner
#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#include <Constants.au3>
$Gui = GUICreate("GUI", 588, 356, 506, 332)
$BrowseSource = GUICtrlCreateButton("Parcourir...", 496, 48, 65, 25)
$SourceFile = GUICtrlCreateInput("", 120, 48, 369, 21)
$Valid = GUICtrlCreateInput("", 376, 184, 177, 21)
GUISetState(@SW_SHOW)
Global $SunVirtualBox = RegRead("HKEY_LOCAL_MACHINE\Software\Sun\VirtualBox", "InstallDir")
Global $OracleVirtualBox = RegRead("HKEY_LOCAL_MACHINE\Software\Oracle\VirtualBox", "InstallDir")
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $BrowseSource
BrowseSrc()
Case $GUI_EVENT_CLOSE
Exit
EndSwitch
WEnd
Func BrowseSrc()
Local $ListInfo = "InfoSourceVDI.txt"
Local $message = "Selectionne la source de ton fichier VDI."
Local $var = FileOpenDialog($message, @DesktopDir & "\", "Fichiers VirtualBox (*.vdi)", 1)
GUICtrlSetData($SourceFile,$var)
IniWrite( @ScriptDir &"\CloneVDIinfo.ini","parametres","Source",GUICtrlRead($SourceFile))
$IniSource = IniRead(@ScriptDir &"\CloneVDIinfo.ini", "parametres", "Source", "NotFound")
RunWait(@ComSpec & ' /c "' &$SunVirtualBox&'VBoxManage.exe"' &" showhdinfo " &$IniSource &" > " &$ListInfo, "", @SW_HIDE)
$file = FileOpen("InfoSourceVDI.txt", 0)
While 1
$Line = FileReadLine($file)
If @error Then ExitLoop
If StringLeft($Line, 5) = "UUID:" Then $String1 = StringTrimLeft($Line,5)
If StringLeft($Line, 11) = "Accessible:" Then $String2 = StringTrimLeft($Line,11)
If StringLeft($Line, 13) = "Logical size:" Then $String3 = StringTrimLeft($Line,13)
WEnd
FileClose ($file)
GUICtrlSetData($Valid,$String2)
EndFunc
- zeshrek
- Niveau 10

- Messages : 984
- Enregistré le : mer. 17 nov. 2010 09:31
- Localisation : Sur ma chaise
- Status : Hors ligne
Re: [..] Couleur texte dans GUICtrlCreateInput
Bin, cherche pas !
ta chaine a l'origine c'est Accessible: yes
Tu enleves les 11 caracteres de gauche avec $String2 = StringTrimLeft($Line, 11)
bon, compte les caracteres de la chaine, et tu veras que ce que tu gardes apres cette découpe c'est {espace}yes
Il faudrait alors que tu fasses un pour enlever l'espace qui précede 'yes'
D'ou l'utilité de bien poser les questions quand on demande qqchose, parceque ta demande c'était "je veux uniquement la partie après les :"
Du coup, le coupage s'est fait apres les ':' alors qu'il aurait fallu le faire apres l'espace qui suit les ':'
Du coup c'est aussi surement valable pour les 2 autres $String, donc les 3 lignes deviennent :
ta chaine a l'origine c'est Accessible: yes
Tu enleves les 11 caracteres de gauche avec $String2 = StringTrimLeft($Line, 11)
bon, compte les caracteres de la chaine, et tu veras que ce que tu gardes apres cette découpe c'est {espace}yes
Il faudrait alors que tu fasses un
Code : Tout sélectionner
$String2 = StringTrimLeft($Line, 1[color=#FF0000]2[/color])D'ou l'utilité de bien poser les questions quand on demande qqchose, parceque ta demande c'était "je veux uniquement la partie après les :"
Du coup, le coupage s'est fait apres les ':' alors qu'il aurait fallu le faire apres l'espace qui suit les ':'
Du coup c'est aussi surement valable pour les 2 autres $String, donc les 3 lignes deviennent :
Code : Tout sélectionner
If StringLeft($Line, 5) = "UUID:" Then $String1 = StringTrimLeft($Line,[color=#FF0000][b]6[/b][/color])
If StringLeft($Line, 11) = "Accessible:" Then $String2 = StringTrimLeft($Line,1[color=#FF0000][b]2[/b][/color])
If StringLeft($Line, 13) = "Logical size:" Then $String3 = StringTrimLeft($Line,1[color=#FF0000][b]4[/b][/color])Si vis pacem para bellum
Re: [..] Couleur texte dans GUICtrlCreateInput
oK j'ai compris merci pour les explications,
et pour modifier la couleur du texte dans mon GuiCtrlCreateInput en fonction du resultat yes (en vert), no (en rouge) c'est possible ou non ?
et pour modifier la couleur du texte dans mon GuiCtrlCreateInput en fonction du resultat yes (en vert), no (en rouge) c'est possible ou non ?
- bloodwolff
- Membre émérite

- Messages : 655
- Enregistré le : ven. 18 avr. 2008 22:36
- Localisation : Québec
- Status : Hors ligne
- zeshrek
- Niveau 10

- Messages : 984
- Enregistré le : mer. 17 nov. 2010 09:31
- Localisation : Sur ma chaise
- Status : Hors ligne
Re: [..] Couleur texte dans GUICtrlCreateInput
oui c'est possible et ton code de tout a l'heure devrait du coup etre bon, avec juste la gestion des majuscules (au cas ou) ce qui donne :
Code : Tout sélectionner
$Valid = GUICtrlCreateInput("", 376, 184, 177, 21)
IF StringUpper($String2)= "YES" then
GUICtrlSetColor(-1, 0x00ff00) ; green
GUICtrlSetData($Valid,$String2)
Else
GUICtrlSetColor(-1, 0xff0000) ; Red
GUICtrlSetData($Valid,$String2)
EndIf
Si vis pacem para bellum
Re: [..] Couleur texte dans GUICtrlCreateInput
Blop,
J'ai ajouté ton code dans ma fonction, et le résultat apparait toujours en rouge alors que cela devrait être vert.
serait ce le if qui me jouerait un tour ?
fichier txt :
J'ai ajouté ton code dans ma fonction, et le résultat apparait toujours en rouge alors que cela devrait être vert.
serait ce le if qui me jouerait un tour ?
fichier txt :
Sun VirtualBox Command Line Management Interface Version 3.1.6
(C) 2005-2010 Sun Microsystems, Inc.
All rights reserved.
UUID: 67ae883d-8859-4191-8c61-024949344a15
Accessible: yes
Description:
Logical size: 7860 MBytes
Current size on disk: 0 MBytes
Type: normal (base)
Storage format: VMDK
In use by VMs: aspireoneusb (UUID: 39306fe5-93fa-4999-81a9-447e7f6673ac)
Location: F:\usb.vdi
- zeshrek
- Niveau 10

- Messages : 984
- Enregistré le : mer. 17 nov. 2010 09:31
- Localisation : Sur ma chaise
- Status : Hors ligne
Re: [..] Couleur texte dans GUICtrlCreateInput
Gnîîî ???? Y doit y avoir un bug qqpart.
Donc pour débuger, on va voir ce que ca donne avec une petite msgbox a insérer apres le else :
Si la msgbox t'affiche
c'est que le if pose probleme, sinon, c'est la facon dont tu obtiens $String2
Donc pour débuger, on va voir ce que ca donne avec une petite msgbox a insérer apres le else :
Code : Tout sélectionner
msgbox(0,"","*"&$String2&"*"&@CRLF&StringLen($String2))*yes*
3
c'est que le if pose probleme, sinon, c'est la facon dont tu obtiens $String2
Si vis pacem para bellum
Re: [..] Couleur texte dans GUICtrlCreateInput
Voici le résultat :


- zeshrek
- Niveau 10

- Messages : 984
- Enregistré le : mer. 17 nov. 2010 09:31
- Localisation : Sur ma chaise
- Status : Hors ligne
Re: [..] Couleur texte dans GUICtrlCreateInput
Il y a donc 10 espaces de trop, qu'il va falloir supprimer.
Tu peux soit agir sur les StringTrimLeft qui servent a definir $String2 (et probablement aussi $String1 & $String3), soit utiliser juste avant le if
Tu peux soit agir sur les StringTrimLeft qui servent a definir $String2 (et probablement aussi $String1 & $String3), soit utiliser
Code : Tout sélectionner
StringReplace($String2, " ", "")Si vis pacem para bellum
Re: [..] Couleur texte dans GUICtrlCreateInput
Dans mon exemple ça fonctionne.
J'ai modifié :
mais si j'ajoute le code dans la gui complète, c'est mon bouton Quitter qui est vert ?? pourquoi ?
Qu'est ce que j'ai fait de faux ?
On dirait que la couleur est appliquée sur la derniere ligne de la Gui.

J'ai modifié :
Code : Tout sélectionner
If StringLeft($Line, 11) = "Accessible:" Then $String2 = StringTrimLeft($Line,22)Qu'est ce que j'ai fait de faux ?
On dirait que la couleur est appliquée sur la derniere ligne de la Gui.

Modifié en dernier par Laddy le jeu. 16 déc. 2010 16:38, modifié 1 fois.
- zeshrek
- Niveau 10

- Messages : 984
- Enregistré le : mer. 17 nov. 2010 09:31
- Localisation : Sur ma chaise
- Status : Hors ligne
Re: [..] Couleur texte dans GUICtrlCreateInput
C'est normal, dans ton code :
les '-1' indiquent d'affecter le parametre au dernier controle utilisé.
Il faut donc modifier le code en lui indiquant a quel controle tu veux acceder comme ca:
Code : Tout sélectionner
IF StringUpper($String2) = "yes" then
GUICtrlSetColor([color=#FF0000][b]-1[/b][/color], 0x00ff00) ; green
GUICtrlSetData($Valid,$String2)
Else
;msgbox(0,"","*"&$String2&"*"&@CRLF&StringLen($String2))
GUICtrlSetColor([color=#FF0000][b]-1[/b][/color], 0xff0000) ; Red
GUICtrlSetData($Valid,$String2)
EndIf
Il faut donc modifier le code en lui indiquant a quel controle tu veux acceder comme ca:
Code : Tout sélectionner
IF StringUpper($String2) = "yes" then
GUICtrlSetColor([color=#FF0000][b]$Valid[/b][/color], 0x00ff00) ; green
GUICtrlSetData($Valid,$String2)
Else
;msgbox(0,"","*"&$String2&"*"&@CRLF&StringLen($String2))
GUICtrlSetColor([color=#FF0000][b]$Valid[/b][/color], 0xff0000) ; Red
GUICtrlSetData($Valid,$String2)
EndIf
Si vis pacem para bellum
Re: [..] Couleur texte dans GUICtrlCreateInput
Arf c'est les petits trucs que je ne piges pas tout le temps dans la documentation.
Merci de m'avoir consacré du temps je vais pouvoir poursuivre et m'attaquer à a fonction de clonage.
Je vais abuser avant t'ouvrir un autre sujet mais la ligne de commande que j'utilise affiche un pourcentage sur l'avancer du clonage penses tu qu'il est soit possible de faire une "progressbar graphique" qui fasse la même choses ?

Merci de m'avoir consacré du temps je vais pouvoir poursuivre et m'attaquer à a fonction de clonage.
Je vais abuser avant t'ouvrir un autre sujet mais la ligne de commande que j'utilise affiche un pourcentage sur l'avancer du clonage penses tu qu'il est soit possible de faire une "progressbar graphique" qui fasse la même choses ?

-
Colin117
- Niveau 5

- Messages : 114
- Enregistré le : jeu. 18 nov. 2010 17:57
- Localisation : Vers là bas !
- Status : Hors ligne
Re: [..] Couleur texte dans GUICtrlCreateInput
Oui tu peux bien évidemment. regarde du coté de GUICtrlCreateProgress
► Afficher le texte
Re: [R] Couleur texte dans GUICtrlCreateInput
Merci
je ne suis pas encore au point arf ma fonction de clonage ne passe pas erreur de syntaxe problème avec le Switch
je vais essayer de trouver mon erreur et si jamais j'ouvrirai un autre sujet.
Bonne journéé
Laddy
je ne suis pas encore au point arf ma fonction de clonage ne passe pas erreur de syntaxe problème avec le Switch
je vais essayer de trouver mon erreur et si jamais j'ouvrirai un autre sujet.
Bonne journéé
Laddy

