Page 1 sur 1
[..] Une fenêtre de discussion
Posté : jeu. 01 sept. 2011 16:43
par loockys
Bonjour à tous.
En ce moment,
Je lance mon apprentissage dans une fenêtre de discussion basique
et je commence déjà à rencontrer quelques soucis pendant l'envoie des données.
Après avoir vu de nombreuses vidéo US et je suis parvenue quand même un résultat satisfaisante à mon égard pour le moment.
(Aucune notion d'anglais)
► Afficher le texteCode
Code : Tout sélectionner
#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
$Form1 = GUICreate("Form1", 375, 292, 192, 124)
$Edit1 = GUICtrlCreateEdit("", 16, 96, 337, 169, BitOR($ES_READONLY,$ES_WANTRETURN,$WS_VSCROLL))
GUICtrlSetData(-1, "Message reçus :")
$Input1 = GUICtrlCreateInput("Votre texte ici", 16, 16, 337, 21)
$Button1 = GUICtrlCreateButton("Envoyer", 16, 48, 337, 33)
GUISetState(@SW_SHOW)
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
case $Button1
btn1()
EndSwitch
WEnd
Func btn1()
GUICtrlSetData($Edit1, GUICtrlRead($Input1))
EndFunc
Mon problème est le suivant :
j'aimerais qu'à chaque fois que je clique sur le bouton envoyer,
que le texte reste affiché sur la dernière fenêtre du bas et qu'elle saute une ligne
et ainsi de suite à chaque fois que j'utiliserais le bouton.
D'avance merci pour vos réponse
PS: Je suis de retour sur le forum, car je ne trouve pas de solution à mes réponses sur d'autres.
Re: [..]Une fenêtre de discussion
Posté : jeu. 01 sept. 2011 16:50
par TT22
Est-ce que cela te convient ?
► Afficher le texte
Code : Tout sélectionner
#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
$Form1 = GUICreate("Form1", 375, 292, 192, 124)
$Edit1 = GUICtrlCreateEdit("", 16, 96, 337, 169, BitOR($ES_READONLY,$ES_WANTRETURN,$WS_VSCROLL))
GUICtrlSetData(-1, "Message reçus :")
$Input1 = GUICtrlCreateInput("Votre texte ici", 16, 16, 337, 21)
$Button1 = GUICtrlCreateButton("Envoyer", 16, 48, 337, 33)
GUISetState(@SW_SHOW)
While 1
[color=#FF0000]$Last = GUICtrlRead($Edit1)[/color]
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
case $Button1
btn1()
EndSwitch
WEnd
Func btn1()
GUICtrlSetData($Edit1, [color=#FF0000]$Last&@CRLF&[/color]GUICtrlRead($Input1))
EndFunc
Re: [..]Une fenêtre de discussion
Posté : jeu. 01 sept. 2011 16:59
par ZDS
Bonjour,
TT22, ou "Comment bouffer des ressources pour rien" ^^ Faire un "$Last = GUICtrlRead($Edit1)" à chaque itération d'une boucle, c'est un peu beaucoup suicidaire...
► Afficher le texteScript
Code : Tout sélectionner
#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
$Form1 = GUICreate("Form1", 375, 292, 192, 124)
$Edit1 = GUICtrlCreateEdit("", 16, 96, 337, 169, BitOR($ES_READONLY,$ES_WANTRETURN,$WS_VSCROLL))
GUICtrlSetData(-1, "Message reçus :")
$Input1 = GUICtrlCreateInput("Votre texte ici", 16, 16, 337, 21)
$Button1 = GUICtrlCreateButton("Envoyer", 16, 48, 337, 33)
GUISetState(@SW_SHOW)
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
case $Button1
btn1()
EndSwitch
WEnd
Func btn1()
[color=#BF0000] GUICtrlSetData($Edit1, GUICtrlRead($Edit1) & @CRLF & GUICtrlRead($Input1))
[/color]EndFunc
A bientôt !
Re: [..]Une fenêtre de discussion
Posté : jeu. 01 sept. 2011 17:13
par TT22
ZDS a écrit :Comment bouffer des ressources pour rien
Ouai c'est vrai mais moi je m'en rend pas compte car j'ai un ordi assez puissant

Re: [..] Une fenêtre de discussion
Posté : lun. 12 sept. 2011 12:50
par loockys
Re bonjour à tous
(Merci pour vos réponses constructifs TT22 et ZDS.)
Onze nuits, onze jours que mon poste est ouvert et j'ai fait des cherches sur internet
et je tombe toujours sur les mêmes sujets qui ne répondent pas à mes attentes.
► Afficher le texteCode Amélioré
Code : Tout sélectionner
#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
$Form1 = GUICreate("Form1", 375, 350, 192, 124)
$Edit1 = GUICtrlCreateEdit("", 16, 115, 337, 169, BitOR($ES_READONLY,$ES_WANTRETURN,$WS_VSCROLL))
GUICtrlSetData(-1, "")
$Input1 = GUICtrlCreateInput("Pseudo", 160, 10, 100, 21)
$Input2 = GUICtrlCreateInput("Votre texte ici", 16, 40, 337, 21)
$Button1 = GUICtrlCreateButton("Envoyer", 16, 70, 337, 33)
GUISetState(@SW_SHOW)
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
case $Button1
btn1()
EndSwitch
WEnd
Func btn1()
GUICtrlSetData($Edit1, GUICtrlRead($Edit1) & @CRLF & GUICtrlRead($Input1) & " dit :" & @CRLF & GUICtrlRead($Input2))
EndFunc
Je voudrais savoir si on peut différencier les couleurs sur la fenêtre du bas.
Exemple : J'aimerais que le nom du pseudo soit de couleur bleue et que le texte reste en noir à chaque fois que j'utiliserais le bouton..
D'avance merci pour vos réponses
Cordialement Loockys.
Re: [..] Une fenêtre de discussion
Posté : lun. 12 sept. 2011 16:55
par mikell
C'est un peu difficile...

Un Edit normal ne suffit pas, il faut un Edit particulier qui s'appelle RichEdit
Voilà un exemple qui fait ce que tu demandes : (tout de même, faudrait te mettre à l'anglais si tu veux progresser en autoit...)
► Afficher le texte
Code : Tout sélectionner
#include <GuiRichEdit.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
$Form1 = GUICreate("Form1", 375, 350, 192, 124)
$Edit1 = _GUICtrlRichEdit_Create($Form1, "", 16, 115, 337, 169, BitOR($ES_MULTILINE, $ES_READONLY,$WS_VSCROLL))
$Input1 = GUICtrlCreateInput("Pseudo", 160, 10, 100, 21)
$Input2 = GUICtrlCreateInput("Votre texte ici", 16, 40, 337, 21)
$Button1 = GUICtrlCreateButton("Envoyer", 16, 70, 337, 33)
GUISetState(@SW_SHOW)
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
GuiDelete($Form1)
Exit
case $Button1
btn1()
EndSwitch
WEnd
Func btn1()
_GUICtrlRichEdit_WriteLine($Edit1, GUICtrlRead($Input1), 0x0088ff)
_GUICtrlRichEdit_WriteLine($Edit1, " dit :"& @CRLF, 0x000000)
_GUICtrlRichEdit_WriteLine($Edit1, GUICtrlRead($Input2) & @CRLF& @CRLF, 0x000000)
EndFunc
;===============================================================
Func _GUICtrlRichEdit_WriteLine($hWnd, $sText, $iColor = -1)
;http://www.autoitscript.com/forum/topic/130306-solved-write-to-listbox-in-different-colors
; Count the @CRLFs
StringReplace(_GUICtrlRichEdit_GetText($hWnd, True), @CRLF, "")
Local $iLines = @extended
; Adjust the text char count to account for the @CRLFs
Local $iEndPoint = _GUICtrlRichEdit_GetTextLength($hWnd, True, True) - $iLines
; Add new text
_GUICtrlRichEdit_AppendText($hWnd, $sText) ; & @CRLF)
; Select text between old and new end points
_GuiCtrlRichEdit_SetSel($hWnd, $iEndPoint, -1)
; Convert colour from RGB to BGR
$iColor = Hex($iColor, 6)
$iColor = '0x' & StringMid($iColor, 5, 2) & StringMid($iColor, 3, 2) & StringMid($iColor, 1, 2)
; Set colour
If $iColor <> -1 Then _GuiCtrlRichEdit_SetCharColor($hWnd, $iColor)
; Clear selection
_GUICtrlRichEdit_Deselect($hWnd)
EndFunc
Re: [..] Une fenêtre de discussion
Posté : lun. 12 sept. 2011 20:12
par matwachich

Tout simple, et tout bête!
Code : Tout sélectionner
#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
$Form1 = GUICreate("Form1", 375, 292, 192, 124)
$Edit1 = GUICtrlCreateEdit("", 16, 96, 337, 169, BitOR($ES_READONLY,$ES_WANTRETURN,$WS_VSCROLL))
GUICtrlSetData(-1, "Message reçus :" & @CRLF) ; ###
$Input1 = GUICtrlCreateInput("Votre texte ici", 16, 16, 337, 21)
$Button1 = GUICtrlCreateButton("Envoyer", 16, 48, 337, 33)
; ###
$accels[1][2] = [["{enter}",$Button1]]
GuiSetAccelerators($accels, $Form1)
$accels = 0
; ###
GUISetState(@SW_SHOW)
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
case $Button1
btn1()
EndSwitch
WEnd
Func btn1()
GUICtrlSetData($Edit1, GUICtrlRead($Input1) & @CRLF, 1) ; ###
EndFunc
Re: [..] Une fenêtre de discussion
Posté : lun. 12 sept. 2011 21:01
par mikell
loockys a écrit :Re bonjour à tous
Je voudrais savoir si on peut différencier les couleurs sur la fenêtre du bas.
Exemple : J'aimerais que le nom du pseudo soit de couleur bleue et que le texte reste en noir à chaque fois que j'utiliserais le bouton..
Hé, faut lire les messages, d'abord

Et accessoirement donner des scripts qui renvoient pas des erreurs...
