Page 1 sur 1

[..] Aide sur la fonction GUICtrlSetData

Posté : lun. 21 mai 2012 15:01
par ludwig89
bonjour

j'ai fait un script autoit qui permet d'afficher des plan pdf, par une lecture codebarre sur un ecran

puis après de les déplacer dans de sous répertoire "ok" ou "erreur", en fonction d'une lecture code barre "ok" ou "erreur"

j'ai mis dans une GUI, mes liste de fichier, "source", "ok", "erreur" sous forme d'une combo list, et en dessous des label donnant le nombre de fichier que contient chaque répertoire

à chaque mouvement de fichier j'utilise la commande GUIctrlsetdata pour rafraichier les données des différent label, mais cela ne se met pas a jour (pourtant cela marche à l'initialisation du prog)

une capture de mon script
Image

Uploaded with ImageShack.us

mon script
► Afficher le texte

pour l'utisation du script, ajouté systématiquement un "1" a la fin de chaque pdf dans le $input1



merci pour vos futur réponses, en espérant que vous ayez compris ma demande :)

Re: []aide sur la fonction GUICtrlSetData

Posté : lun. 21 mai 2012 15:04
par ludwig89
Image

une capture qui met plus en valeur mon problème, dans la fenêtre de saisie (inputbox) la valeur c'est bien remise a jour, pas dans la gui gérée avec guictrlsetdata :s

Re: []aide sur la fonction GUICtrlSetData

Posté : lun. 21 mai 2012 16:37
par Arkenix
Je pense que ton problème viens du fait que ton inputbox arrête temporairement le script. il a donc à son ouverture une variable qui peut être différent.

Peux être devrais tu mettre le calcul des tes variables dans un AdlibRegister, plutôt que de faire des sleep(150) à chaque.


PS : je n'ai pas très bien compris le GUISetState () dans le While Oo

Re: []aide sur la fonction GUICtrlSetData

Posté : lun. 21 mai 2012 16:45
par ludwig89
merci pour ta réponse, que je vais étudier

les sleep(150) c'est un reste de mes multiples test/tentative pour refrech le label

le GUISetState () pareil, à la base je voulais faire un genre de screen update
Je pense que ton problème viens du fait que ton inputbox arrête temporairement le script. il a donc à son ouverture une variable qui peut être différent.

du coup je me dis que je pourrais mettre mes input dans une "GUICtrlCreateInput" dans le même formulaire, pour palier a ce problème

sauf si vous avez d'autre solution

Re: []aide sur la fonction GUICtrlSetData

Posté : lun. 21 mai 2012 16:52
par mikell

Code : Tout sélectionner

$label_entree=GUICtrlSetData($label_entree,"pdf à traiter="&$nbfichier_entree)
$label_entree est le controlID de la label, attribué par GuiCtrlCreateLabel
GUICtrlSetData en cas de succès renvoie la valeur 1
Je te laisse conclure :wink:

Et revois la mise en forme du titre de ton topic : [..] + espace + majuscule

Re: [..] Aide sur la fonction GUICtrlSetData

Posté : lun. 21 mai 2012 17:02
par ludwig89
lors de la création de mon label

Code : Tout sélectionner

$label_entree=GUICtrlCreatelabel ("Line 1",  20, 380,121,25 )

la première mise a jour qui marche du label, à l'entrée de la boucle

Code : Tout sélectionner

$label_entree=GUICtrlSetData($label_entree,"pdf à traiter="&$nbfichier_entree)
et après pour chaque occurrence de la boucle le refrech ne se fait pas.
je ne vois pas ou tu veux en venir avec
GUICtrlSetData en cas de succès renvoie la valeur 1
ps j'ai mis a jour le titre du post, dsl

Re: [..] Aide sur la fonction GUICtrlSetData

Posté : lun. 21 mai 2012 17:54
par mikell
Essaie ce petit test

Code : Tout sélectionner

GUICreate("My GUI")  ; will create a dialog box that when displayed is centered
  $label =  GUICtrlCreateLabel("ma label", 10, 30, 70)    
GUISetState()
Msgbox(0,"", "l'ID de la label avant le GUICtrlSetData est : " & $label )
Sleep(300)
$label = GUICtrlSetData($label, "tagada")
Msgbox(0,"", "l'ID de la label après le GUICtrlSetData est : " & $label )
$test = GUICtrlSetData($label, "lololo") 
If $test = 0 Then Msgbox(0,"", "maintenant ça marche plus..." )
Do
     $msg = GUIGetMsg()
Until $msg = -3

Re: [..] Aide sur la fonction GUICtrlSetData

Posté : mar. 22 mai 2012 08:25
par ludwig89
merci

j'ai enfin pu comprendre mon erreur

j'ai donc modifié mes lignes en

Code : Tout sélectionner

GUICtrlSetData($label_entree,"pdf à traiter="&$nbfichier_entree)
    GUICtrlSetData($label_ok,"pdf ok="&$nbfichier_ok)
    GUICtrlSetData($label_erreur,"pdf erreur="&$nbfichier_erreur)
    GUICtrlSetData($label_total,"total des pdf="&$nbfichier_total)