[..] Insérer un progressbar dans une GUI déjà existante

Aide sur les Interfaces Graphique Utilisateurs (GUI).
Règles du forum
.
Répondre
DrSilverman
Niveau 1
Niveau 1
Messages : 9
Enregistré le : ven. 04 août 2017 14:07
Status : Hors ligne

[..] Insérer un progressbar dans une GUI déjà existante

#1

Message par DrSilverman »

Bonjour
Je souhaiterai insérer une progressbar dans une GUI déjà existante et pouvoir utiliser les butons de ma GUI pour changer du texte en même temps que ma progressbar
ou alors
une progressbar dans une gui a part mais qui reste au premier plan pendant que j'utilise les boutons de ma GUI principale pour changer du texte
si qqun a une idée, je suis preneur ! :D
Avatar du membre
TomAijerrie
Niveau 5
Niveau 5
Messages : 192
Enregistré le : lun. 02 juin 2014 09:55
Localisation : Lyon
Status : Hors ligne

Re: [..] Insérer un progressbar dans une GUI déjà existante

#2

Message par TomAijerrie »

Bonjour,

La deuxième solution est faisable, cependant, je pense que c'est mieux d'essayer la première.
Il me manques quelques informations pour t'aider.

La GUI déjà existante est elle créée par l'un de tes script ?
Si oui, peux-tu fournir la partie de ton script qui la crée et l'affiche ?
Peut-on ajouter la progress bar dans ce script, ou il faut que ce soit dans un autre script ?
Si non, de quelle fenêtre s'agit-il ?
Peux-tu fournir un screen, le nom du programme, ses fonctionnalités, etc. ?
Avatar du membre
Numeric
Niveau 5
Niveau 5
Messages : 127
Enregistré le : mer. 23 mars 2016 08:17
Status : En ligne

Re: [..] Insérer un progressbar dans une GUI déjà existante  

#3

Message par Numeric »

Salut j'ai rapidement bricolé un truc juste pour que tu t'en inspires...excuse moi pour l'algorithme un peu imparfait. Je n'ai pas eu le temps...
#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <ProgressConstants.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#include <SendMessage.au3>
#Region ### START Koda GUI section ### Form=
Global $Form1 = GUICreate("Form1", 342, 438, 192, 124)
Global $ButtonMove = GUICtrlCreateButton("<Move>", 120, 304, 75, 25)
Global $ButtonInitialiser = GUICtrlCreateButton("<Reinitialiser>", 120, 389, 75, 25)
Global $Group1 = GUICtrlCreateGroup("Options", 24, 40, 281, 105)
Global $RadioCallNext = GUICtrlCreateRadio("Next", 48, 72, 233, 17)
GUICtrlSetState(-1, $GUI_CHECKED)
Global $RadioCallPrev = GUICtrlCreateRadio("Prev", 48, 104, 225, 17)
GUICtrlCreateGroup("", -99, -99, 1, 1)
Global $Progress1 = GUICtrlCreateProgress(24, 200, 286, 17)
Global $LabelStatut = GUICtrlCreateLabel("                             ", 0, 248, 342, 17, $SS_CENTER, $WS_EX_STATICEDGE)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###

#cs Remarque
;GUICtrlSetData($Progress1, 30) est aussi utilisé pour marquer un ctrl progress.

 _SendMessage (pour le handle du ctrl) GUICtrlSendMsg et GuictrlSetData pour (l' ID du ctrl)
 j'ai expressement utilisees ces fonctions pour enrichir l'exemple.

#ce




;variable pour nous permetre de nettoyer convenablement l'affichage du statut et la progression du progressbar
Global $boolClean = 0 ;Next est selectionné. il sera à 1 pour prev.

Global $hProgress = GUICtrlGetHandle($Progress1)

;Tableau pour contenir nos fichier a defiler
Local $aToZap[11]

;remplissage du tableau
For $j = 0 To 10
   $aToZap[$j] = "Fichier Numero " & $j
Next




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

      Case $Form1
      Case $Form1
      Case $Form1
      Case $Form1
      Case $ButtonInitialiser

         GUICtrlSetData($LabelStatut,'')
         GUICtrlSendMsg($Progress1,$PBM_SETPOS,0,0)
         ;_SendMessage($hProgress, $PBM_SETPOS, 0, 0, 0, "wparam", "int")

      Case $ButtonMove
         Local $vSens
         If _Coche($RadioCallNext) Then
            $vSens = "+"
         ElseIf _Coche($RadioCallPrev) Then
            $vSens = "-"
         EndIf

         _ProgressAssist($hProgress,$vSens,10)

      Case $RadioCallNext
         If $boolClean Then ; on initialise.
            GUICtrlSetData($LabelStatut,'')

         EndIf

         ;on enregistre l'etat actuel selection.
         $boolClean = 0

      Case $RadioCallPrev
         If Not $boolClean Then
            GUICtrlSetData($LabelStatut,'')
         EndIf
         $boolClean = 1

      Case $LabelStatut
   EndSwitch
WEnd


Func _Coche($iD_Controle)
   Return BitAND(GUICtrlRead($iD_Controle), $GUI_CHECKED) = $GUI_CHECKED
EndFunc   ;==>_Coche


Func _ProgressAssist($hProgress,$vSens = "+", $iMax = 10)
   ;$iMax est choisie en fonction de la taille du tableau $aToZap

   ;On Cherche le niveau de progression actuel.

   Local $iProgress = _SendMessage($hProgress, $PBM_GETPOS)

   Local $iCount = (1*100)/$iMax ;pour le calcul
   Select
      Case $vSens = "+"
         $iProgress += $iCount
      Case $vSens = "-"
         $iProgress -= $iCount
   EndSelect

    If $iProgress >= 100 Then $iProgress = 100 ;on ne fait rien si la barre est toute pleine.
   If $iProgress < 0 Then $iProgress = 0

   ;Affichage et defilement
   GUICtrlSetData($LabelStatut,$aToZap[$iProgress/10] &  "  [niveau progression = " & $iProgress &" %]")
   _SendMessage($hProgress, $PBM_SETPOS, $iProgress,0, 0, "int", "lparam")
   ;GUICtrlSendMsg($Progress1,$PBM_SETPOS,$iProgress,0)
EndFunc
De 0 et 1 vers les étoiles , tout part du Binaire, Numeric
Avatar du membre
Numeric
Niveau 5
Niveau 5
Messages : 127
Enregistré le : mer. 23 mars 2016 08:17
Status : En ligne

Re: [..] Insérer un progressbar dans une GUI déjà existante

#4

Message par Numeric »

DrSilverman a écrit : mar. 03 oct. 2017 16:24 Bonjour
Je souhaiterai insérer une progressbar dans une GUI déjà existante et pouvoir utiliser les butons de ma GUI pour changer du texte en même temps que ma progressbar
Si la GUI est d'un autre script ou ... alors il serait plus adapté de créer ta propre GUI et son contrôle progressbar. Tu pourras ensuite en deux étapes réagir à l’événement voulu.
1ere étape : tu intercepte les messages de notification envoyés par les buttons.
2eme étape tu mets à jour ton contrôle progressbar en fonction des messages interceptés..
De 0 et 1 vers les étoiles , tout part du Binaire, Numeric
DrSilverman
Niveau 1
Niveau 1
Messages : 9
Enregistré le : ven. 04 août 2017 14:07
Status : Hors ligne

Re: [R] Insérer un progressbar dans une GUI déjà existante

#5

Message par DrSilverman »

La GUI a bien été crée par l'un de mes scripts
Pour la partie du script, ce n'est plus la peine, Numeric a résolu le problème, merci a lui :D
il fallait que ce soit dans le meme script
et poour le screen ce n'est plus la peine :)
merci de m'avoir répondu, Numeric et TomAijerrie !
Répondre