Page 1 sur 1

[R] affectation d'un "&" dans un label

Posté : mer. 09 mars 2011 11:56
par DavidMon
Bonjour à tous,

Quelqu'un aurait une :idea: pour prendre en compte une variable texte contenant un "&" dans un label sans utiliser la fonction StringReplace ?

Serait-ce un bug de GuictrlSetData pour les labels :?:

Dans le code ci-dessous, j'ai mis un Input pour illustrer mon désarroi... et le la loudeur de l'utilisation de StringReplace.

Code : Tout sélectionner

#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>

Opt('MustDeclareVars', 1)
Local $label,$input,$label2,$input2,$text

Example1()

; example 1
Func Example1()
    Local $msg

    GUICreate("My GUI") ; will create a dialog box that when displayed is centered
    GUISetState(@SW_SHOW) ; will display an empty dialog box
    $text = "Tintin & Milou"
    GUICtrlCreateGroup("test OK", 5,5, 150,60)
    $label = GUICtrlCreateLabel("",10,20,100,20)
    $input = GUICtrlCreateInput("",10,40,100,20)
    GUICtrlSetData($label,StringReplace ($text,'&','&&'))
    GUICtrlSetData($input,StringReplace(GUICtrlRead($label),'&&','&'))

    GUICtrlCreateGroup("test HS", 5,75, 150,60)
    $label2 = GUICtrlCreateLabel("",10,90,100,20)
    $input2 = GUICtrlCreateInput("",10,110,100,20)
    GUICtrlSetData($label2,$text)
    GUICtrlSetData($input2,$text)


    ; Run the GUI until the dialog is closed
    While 1
        $msg = GUIGetMsg()

        If $msg = $GUI_EVENT_CLOSE Then ExitLoop
    WEnd
    GUIDelete()
EndFunc   ;==>Example1
 
Merci.

Re: [..] affectation d'un "&" dans un label

Posté : mer. 09 mars 2011 13:13
par zeshrek
C'est malheureusement vrai, il y a des caractères qui sont plus compliqués que d'autres a utiliser.
C'est le cas de l'apostrophe ou du guillemet puisqu'ils servent de délimiteur de chaine (éssaye de , c'est aussi le cas du &.
Mais dans ton malheur, tu as de la chance, le cas a été prévu par les auteurs d'autoit.

Je te dirai donc juste de faire ce que tu aurais du commencer par faire, et que je viesn de faire pour toi afin de vérifier ce que je t'annonce : lire la doc !

La touche F1 est ton amie

Re: [..] affectation d'un "&" dans un label

Posté : mer. 09 mars 2011 14:58
par DavidMon
J'ai retourné plusieurs fois le problème en consultant abondament l'aide et effectuer plusieurs recherches dans ce forum.
Je tiens à préciser que pour mon code je ne souhaite pas agir sur le contenu de la variable $text.

La solution que tu me proposes est-elle la suivante ?

Code : Tout sélectionner

GUICtrlSetData($label2,"'"&$text&"'")
Je l'avais déjà envisagé mais elle n'est pas concluante. Je ne vois pas comment utiliser autrement les délimiteurs ?

cordialement,

Re: [..] affectation d'un "&" dans un label

Posté : mer. 09 mars 2011 15:03
par zeshrek
Allez un indice : la solution se trouve dans les styles des labels (puisque c'est un label que tu veux afficher)

Re: [..] affectation d'un "&" dans un label

Posté : mer. 09 mars 2011 15:19
par GaRydelaMer
Indice 2: $SS_NOPREFIX

Re: [..] affectation d'un "&" dans un label

Posté : mer. 09 mars 2011 15:21
par zeshrek
tsss...
Le sage a dit : si tu rencontre quelqu'un qui a faim, ne lui donne pas un poisson, apprend lui a pecher

Re: [..] affectation d'un "&" dans un label

Posté : mer. 09 mars 2011 15:35
par DavidMon
Merci à vous 2, j'ai un peu honte :oops:
Je vais même revoir d'autres parties de mes codages antérieurs...

Re: [R] affectation d'un "&" dans un label

Posté : mer. 09 mars 2011 15:45
par GaRydelaMer
Je lui ai juste tendu la perche :p