Page 1 sur 1

[..] Problème d'affichage des retours à la ligne dans EDIT

Posté : ven. 07 mars 2008 09:49
par sieurcoug
Bonjour à tous,

Je suis nouveau sur ce forum mais je fais déjà un peu de génial Autoit depuis quelque temps.

Le problème qui m'amène pour avoir votre avis, c'est que lorsque j'affecte une chaine de caractère dans un contrôle GUI Edit, les retours chariot ne sont pas pris en compte. A la place il s'affiche un carré. Et je perd la mise en forme.

La chaîne qui pose problème est récupérée dans une application java. Mais pourtant cette chaîne s'affiche très bien dans msgbox. Je ne comprends pas.
Par contre les retours chariot issus d'un fichier texte sont OK.

Voici des copies d'écran pour être plus clair :

Image

Vous voyez que la description du problème est concaténée avec des caractères "carrés". Le texte avec les retour chariot est lu dans un fichier texte.
Mais dans un msgbox, c'est ok :
Image

J'ai beau nettoyer la chaîne avec des StringStripCR, StringReplace($text, Chr(10), "") et StringReplace($text, Chr(13), ""), ca les enlèves sans résoudre mon problème.

Qu'en pensez-vous ?
Comment voir comment est réellement constituée la chaîne ?

Re: [..] Problème d'affichage des retours à la ligne dans EDIT

Posté : ven. 07 mars 2008 18:34
par Tlem
Pouvez-vous nous donner un peut plus d'infos, avec une partie du code, pour voir le control exacte que vous utilisez, et la manière dont vous l'avez créé ?

Re: [..] Problème d'affichage des retours à la ligne dans EDIT

Posté : mar. 26 août 2008 15:18
par sieurcoug
Bonjour,

Désolé de faire remonter ce problème de retours chariots mais je n'ai toujours pas trouvé la solution malgré mes recherches et tests divers.
Si vous avez une idée...
En clair :
  • je récupère du texte dans une appli avec WinGetText(). Je manipule ce texte avec d'autres pour en faire un email.
    Jusque là tout va bien. Ce texte est nickel avec les retours à la ligne qui sont correctement interprétés, aussi bien avec ConsoleWrite(), dans une msgbox ou écrit dans un fichier.
  • Le souci vient quand j'affecte ce texte dans une zone Edit, afin que je puisse retoucher mon email préparé par mon code autoit :

    Code : Tout sélectionner

    $lblEmail = GUICtrlCreateEdit(@CRLF & "  Saisie", 10, 110, 580, 100, BitOR($ES_MULTILINE, $ES_WANTRETURN))
    [...]
    GUICtrlSetData($lblEmail, $CorpsEmail)
    Là, les retours à la ligne ne sont plus interprétés. A la place des carrés sont affichés !

    Du coup, le texte de cette zone est inexploitable

    Code : Tout sélectionner

    ClipPut(GUICtrlRead ($lblEmail, 1))

Re: [..] Problème d'affichage des retours à la ligne dans EDIT

Posté : mar. 26 août 2008 15:57
par Tlem
J'espère être sur la bonne piste. ;)

Code : Tout sélectionner

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

$Var1 = "Voici un texte" & @CRLF & "avec des retours chariot." & @CRLF & "Et comme on le constate, ca" & @CRLF & "fonctionne"
$Var2 = "Voici un texte" & @LF & "avec retour chariot." & @CR & "Et lines feed" & @LF & "qui ne fonctionne pas si non traité"

#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("Form1", 307, 402, 193, 125)
$Edit1 = GUICtrlCreateEdit("", 8, 8, 289, 337, BitOR($ES_MULTILINE, $ES_WANTRETURN))
$Button1 = GUICtrlCreateButton("@CRLF", 10, 360, 80, 25, 0)
$Button2 = GUICtrlCreateButton("@LF et @CR", 100, 360, 80, 25, 0)
$Button3 = GUICtrlCreateButton("@LF et @CR Traités", 190, 360, 110, 25, 0)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###

While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
        Case $GUI_EVENT_CLOSE
            Exit
        
        Case $Button1
            GUICtrlSetData($Edit1, $Var1)

        Case $Button2
            GUICtrlSetData($Edit1, $Var2)

        Case $Button3
            $Var2 = StringReplace($Var2, @CR, @CRLF)
            $Var2 = StringReplace($Var2, @LF, @CRLF)
                        GUICtrlSetData($Edit1, $Var2)

    EndSwitch
WEnd