[R] Principe: analyser en temps réel une inputbox

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
JulienBoul
Niveau 4
Niveau 4
Messages : 82
Enregistré le : ven. 04 déc. 2015 13:55
Status : Hors ligne

[R] Principe: analyser en temps réel une inputbox

#1

Message par JulienBoul »

Bonjour à tous,

Je me demande s'il est possible d'analyser une inputbox ou autre champ de saisie en direct (faut il créer une bouche dans le script, ou peut on le faire en direct?)

Mon objectif est de créer un outil en temps réel qui analyse des données (pourcentage, montant, nombre, durée...) et qui change de couleur en fonction de l'importance du nombre analysé.
Exemple: de 0 à 10, vert, de 11 à 20 orange, et plus de 21, rouge.

j'avais trouvé un super beau (et compact) script qui changeait la couleur en fonction de la valeur de la progressbar, est il intéressant de m'en inspirer?

Code : Tout sélectionner

#include <GUIConstantsEx.au3>

; Script : Exemple de barre de progression qui change de couleur en fonction du % du curseur
; Script original : http://www.autoitscript.com/forum/topic ... _p__634438 (auteur : RomanK)
; Réécrit et complété par scorp84 (modification simplifiée de la taille et de la position de la barre de progression
; et ajout du changement de couleur suivant la position du curseur)
; 28/12/11


GUICreate("Progress bar colorée selon %", 350, 50) ; GUI

$prog_left=10       ; Position en x de la barre de progression
$prog_top=10        ; Position en y de la barre de progression
$prog_width=300     ; Longueur de la barre de progression
$prog_height=15     ; Largeur de la barre de progression (recommandé : 15 pour une barre équivalente à une progressbar

$prog_curseur = 0   ; Raz valeur curseur

$prog_frame = GUICtrlCreateLabel("", $prog_left, $prog_top, $prog_width, $prog_height+2, 0x12) ; Cadre de la barre de progression

$progress = GUICtrlCreateLabel("", $prog_left+1, $prog_top+1, 0, $prog_height); Barre de progression / $prog_left+1 et $prog_top+1 pour voir le cadre autour

GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT) ; Fond transparent pour la barre de progression

$label_pourc = GUICtrlCreateLabel("", $prog_left, $prog_top+($prog_height/2)-5, $prog_width, 20, 0x01); $prog_top+($prog_height/2)-5 pour mettre les % au milieu

GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT); Fond du label % transparent

GUISetState() ; Affichage de la GUI


While 1

    $prog_curseur=$prog_curseur+1 ; Augmente la valeur du curseur de 1
    GUICtrlSetPos($progress, $prog_left+1, $prog_top+1, $prog_curseur) ; Augmente la position du curseur
    GUICtrlSetData($label_pourc, "  " & Round($prog_curseur / $prog_width * 100, 0) & "%" ) ; Indique le %

    Switch $prog_curseur

        Case 1 ; Barre de progression verte de 0 à 50 %
            GUICtrlSetBkColor($progress, 0x00FF00) ; Vert

        Case ($prog_width/2)+1 ; Barre de progression orange de 50 à 75 %
            GUICtrlSetBkColor($progress, 0xFF9900) ; Orange

        Case ($prog_width*3/4)+1 ; Barre de progression rouge de 75 à 100 %
            GUICtrlSetBkColor($progress, 0xFF0000) ; Rouge

        Case $prog_width ; Sortie de la boucle à 100 %

            Sleep(1000) ; Pause avant sortie de la boucle (Facultatif)

            ExitLoop ; Sortie de la boucle

    EndSwitch

    Sleep(100) ; Pause
WEnd

Exit
Pouvez vous me donner des mots clé pour avancer dans ma recherche, autoit est il taillé pour de l'analyse en temps réel ou est il meilleur dans l'analyse suite à action utilisateur? D'avance merci, et bon week end !
Modifié en dernier par JulienBoul le lun. 18 avr. 2016 13:24, modifié 2 fois.
Avatar du membre
orax
Modérateur
Modérateur
Messages : 1479
Enregistré le : lun. 23 mars 2009 04:50
Localisation : ::1
Status : Hors ligne

Re: Principe: analyser en temps réel une inputbox

#2

Message par orax »

Pour les contrôles Edit il y a EN_CHANGE.
Regarde les exemples de _GUICtrlEdit_Create.

Pour les Inputbox je ne crois pas que ce soit possible.
De petits détails peuvent faire toute la différence. — Quand la boule de neige commence à rouler… poussez-la. (Columbo)
Avatar du membre
mikell
Spammer !
Spammer !
Messages : 6292
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: [..] Principe: analyser en temps réel une inputbox

#3

Message par mikell »

Oui on peut

Code : Tout sélectionner

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

GUICreate("test", 320, 120)
$input = GUICtrlCreateInput("", 10, 5, 300, 20)
GUISetState()
GUIRegisterMsg($WM_COMMAND, "_CheckInput") 

While 1
  Switch GUIGetMsg()
      Case $GUI_EVENT_CLOSE
           Exit
  EndSwitch
WEnd

Func _CheckInput($hWnd, $Msg, $wParam, $lParam)  ;WM_COMMAND
Switch BitAND($wParam, 0x0000FFFF)
	Case $input
		If BitShift($wParam, 16) = $EN_UPDATE Then
			If Number(GuiCtrlRead($input)) < 10 Then GUICtrlSetColor($input, 0x000000)
			If Number(GuiCtrlRead($input)) > 9 Then GUICtrlSetColor($input, 0xff0000)
			If Number(GuiCtrlRead($input)) > 19 Then GUICtrlSetColor($input, 0x00ff00)
		EndIf
EndSwitch
  Return 'GUI_RUNDEFMSG'
EndFunc 
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
JulienBoul
Niveau 4
Niveau 4
Messages : 82
Enregistré le : ven. 04 déc. 2015 13:55
Status : Hors ligne

Re: [..] Principe: analyser en temps réel une inputbox

#4

Message par JulienBoul »

Bonjour,

Wahou, trop fort... J'ai pas encore analyse le code pour l'appliquer à mon exemple précis, mais juste MERCI...
La seconde réponse fonctionne à merveille, ça actualise en direct fonction des données inscrites. Je vois déjà plein de développements possibles...

Vous avez fait un heureux :D

Bonne semaine,
Julien.
Répondre