[R] Edit text d'avancement

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
Faco
Niveau 4
Niveau 4
Messages : 80
Enregistré le : lun. 29 juil. 2013 18:09
Status : Hors ligne

[R] Edit text d'avancement

#1

Message par Faco »

Bonjour à tous,

Petite question les experts. :)

Déjà, j'ai cherché longuement avec mon ami google sans trouver ( ou du moins pas la bonne formulation de questions).

Dans mon programme ( bien plus gros que ce que je vais vous présenter maintenant), je vais récupérer des informations sur les ordis de mon réseau.... etc .... etc .... Cette tâche prend du temps et je voudrais, en plus d'une progressbar, mettre un texte qui défile avec les actions en cours.

Voici un petit bout de code schématisant ce que j'ai fais pour l’instant :

Code : Tout sélectionner

#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#Region ### START Koda GUI section ### Form=
Global $Form1 = GUICreate("Form1", 615, 438, 192, 124)
Global $Edit1 = GUICtrlCreateEdit("", 112, 72, 361, 153, $ES_WANTRETURN+$WS_VSCROLL+$WS_HSCROLL+$ES_AUTOVSCROLL+$ES_AUTOHSCROLL+$ES_READONLY)
GUICtrlSetColor(-1, 0x00FF00)
GUICtrlSetBkColor(-1, 0x000000)
GUICtrlSetFont(-1, 8, 400, 0, "Arial")
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###

_test()

While 1
 $nMsg = GUIGetMsg()
 Switch $nMsg
  Case $GUI_EVENT_CLOSE
   Exit

 EndSwitch
WEnd

Func _test()
    Local $dataEdit = ""
    GUICtrlSetState($Edit1, $GUI_SHOW)
    ControlClick ( "", "", $Edit1 )
    for $n = 1 to 100
        $dataEdit &= $n & @CRLF
        GUICtrlsetdata($Edit1,$dataEdit)
        Send("{DOWN}") ; ou Send("{END}")
        sleep(1000)
    Next
EndFunc
 
En gros, ce que je voudrais c'est afficher les actions les unes derrière les autres à la maniére d'un programme d'installation et donc rester focaliser sur la dernière ligne de ce que j'ai écris.

Question :
- suis je obligé de rajouter a ce que j'avais avant ( $dataEdit &= )
- suis je obligé de faire un ControlClic pour rendre le champs de texte actif et de faire un Send("{DOWN}")/Send("{END}") pour rester a la fin de mon texte (chose que ne fonctionne pas d’ailleurs à cause du ControlClic qui me renvoi au milieu du champs de text)
- mon programme est à onglet donc si mon edit text n'est pas actif, Send("{END}") me renvoi au dernier onglet. Pasglop !

En résumé, je voudrais que ça ressemble à la réponse à un ping, les infos arrivent les une derrière les autres et on reste en bas de la page.

Merci à vous
Modifié en dernier par Faco le jeu. 24 oct. 2013 21:15, modifié 1 fois.
Avatar du membre
TopXm
Niveau 6
Niveau 6
Messages : 260
Enregistré le : mer. 25 mai 2011 16:37
Localisation : Usa
Status : Hors ligne

Re: [..] Edit text d'avancement

#2

Message par TopXm »

Hello :)
Faco a écrit :- suis je obligé de rajouter a ce que j'avais avant ( $dataEdit &= )
Non, mais c'est à ta convenance en fait selon si tu veux garder les lignes précédentes ou non :)
Faco a écrit : suis je obligé de faire un ControlClic pour rendre le champs de texte actif et de faire un Send("{DOWN}")/Send("{END}") pour rester a la fin de mon texte (chose que ne fonctionne pas d’ailleurs à cause du ControlClic qui me renvoi au milieu du champs de text)
- mon programme est à onglet donc si mon edit text n'est pas actif, Send("{END}") me renvoi au dernier onglet. Pasglop !
Tu peux peut-être faire quelque chose du style :
► Afficher le texteScroll
Faco
Niveau 4
Niveau 4
Messages : 80
Enregistré le : lun. 29 juil. 2013 18:09
Status : Hors ligne

Re: [R] Edit text d'avancement

#3

Message par Faco »

Nikel

Merci, c’était ça qu'il me fallait

Code : Tout sélectionner

#include <GuiEdit.au3>
#include <ScrollBarConstants.au3>
_GUICtrlEdit_Scroll($Edit1, $SB_SCROLLCARET)
 
Répondre