[R] Fonction petit probleme...

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
Avatar du membre
Yoyo86220
Niveau 6
Niveau 6
Messages : 238
Enregistré le : mer. 12 mars 2008 21:47
Status : Hors ligne

[R] Fonction petit probleme...

#1

Message par Yoyo86220 »

► Afficher le texte
Voici mon script (mon problem est en vert dans le srcipt)
Modifié en dernier par Yoyo86220 le mar. 29 avr. 2008 18:59, modifié 3 fois.
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11791
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [..] Fonction petit probleme...

#2

Message par Tlem »

Pour commencer, vous n'êtes pas obligé de mettre l'intégralité d'un code pour une erreur sur une ligne.

Ensuite, il est dit dans l'aide qu'il est préférable d'utiliser pour les noms de variable des noms commençant par des lettres, et non des chiffres seul !!!

Et pour finir, vous écrivez :

Code : Tout sélectionner

Then Fonction & $1()
mais $1() ne représente pas grand chose pour AutoIt.

Vous auriez dut écrire ceci :

Code : Tout sélectionner

Then Fonction & $1 & "()"
bien que je ne soit pas sur de son fonctionnement.
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11791
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [..] Fonction petit probleme...

#3

Message par Tlem »

Je viens de modifier votre post, car 3 questions dans un post ça fait beaucoup.
Surtout si vous modifiez votre post toute les 5 Mn.

Merci de respecter les règles en posant une question à la fois.
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
ani
Niveau 11
Niveau 11
Messages : 1826
Enregistré le : lun. 23 juil. 2007 12:31
Localisation : Bureau
Status : Hors ligne

Re: [..] Fonction petit probleme...

#4

Message par ani »

bonjour
tlem :)

justement je me demandait a quoi correspondé cette = Fonction & $1()

le signe dollars $ désigne une variable hors ici $1 n'existe pas ni la fonction fonction, peut etre que vous vouliez noter fonction1() ?

en fin de script vous avez aussi le mot exit qui ne sert pas.
Manque la fonction fin() ? ;)

pour la fonction 1,2,3,4 vous pourriez exemple les réunirs en une seul ou encore mettre un évenement pour chaque case1,2,3,4 ?

expliquez nous, que vouliez vous faire pour la fonction & $1()
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11791
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [..] Fonction petit probleme...

#5

Message par Tlem »

A priori, il veut lancer les fonctions 1,2,3,4 par la boucle For, en ré-utilisant la valeur de la boucle pour lancer la fonction concernée.
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Avatar du membre
Yoyo86220
Niveau 6
Niveau 6
Messages : 238
Enregistré le : mer. 12 mars 2008 21:47
Status : Hors ligne

Re: [..] Fonction petit probleme...

#6

Message par Yoyo86220 »

C'est se que je veux faire mais sans succé...
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11791
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [..] Fonction petit probleme...

#7

Message par Tlem »

Ceci me parait plus sage, et plus simple :

Code : Tout sélectionner

For $i = 1 To 4
    Fonction($i)
Next

Func Fonction($Val)
    Select
        Case $Val = 1
            MsgBox(0,"Info","Traitement N°" & $Val)

        Case $Val = 2
            MsgBox(0,"Info","Traitement N°" & $Val)

        Case $Val = 3
            MsgBox(0,"Info","Traitement N°" & $Val)

        Case $Val = 4
            MsgBox(0,"Info","Traitement N°" & $Val)
    
    EndSelect
EndFunc
 
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Avatar du membre
Yoyo86220
Niveau 6
Niveau 6
Messages : 238
Enregistré le : mer. 12 mars 2008 21:47
Status : Hors ligne

Re: [..] Fonction petit probleme...

#8

Message par Yoyo86220 »

c'est pas se que j'attendais... sa me met 4 msgbox et sa quitte...

autrement je peux faire quelque chose dans ce genre

Code : Tout sélectionner

While 1
     $nMsg = GUIGetMsg()
     Switch $nMsg
        
         Case $Button
                 For $i = 1 to 4
                 If BitAND(GUICtrlRead(Eval("case" & $i)), $GUI_CHECKED) Then 
                     If $i = 1 Then Fonction1()
                     If $i = 2 Then Fonction2()
                     If $i = 3 Then Fonction3()
                     If $i = 4 Then Fonction4()
                 GUICtrlSetState(eval("case" & $i),$GUI_UNCHECKED)
                 Next
         Case $GUI_EVENT_CLOSE
            Fin()
     EndSwitch
 WEnd
Si $1 = 1 faire Fonction1()
Si etc...

mais il y a une erreur...
Avatar du membre
Yoyo86220
Niveau 6
Niveau 6
Messages : 238
Enregistré le : mer. 12 mars 2008 21:47
Status : Hors ligne

Re: [..] Fonction petit probleme...

#9

Message par Yoyo86220 »

j'ai trouvé mon erreur :

Code : Tout sélectionner

While 1
     $nMsg = GUIGetMsg()
     Switch $nMsg
        
         Case $Button
                 For $i = 1 to 4
                 If BitAND(GUICtrlRead(Eval("case" & $i)), $GUI_CHECKED) Then
                 If $i = 1 Then Fonction1()
                 If $i = 2 Then Fonction2()
                 If $i = 3 Then Fonction3()
                 If $i = 4 Then Fonction4()
                 EndIf
                 GUICtrlSetState(eval("case" & $i),$GUI_UNCHECKED)
                 Next
         Case $GUI_EVENT_CLOSE
            Fin()
     EndSwitch
 WEnd
 
mais mintenant j'ai un probleme au lieu de m'écrire le msg que j'ai écri il m'écrit un "3" (il remplace tou le "$MessageBox" par un "3") pourquoi ?
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11791
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [..] Fonction petit probleme...

#10

Message par Tlem »

Yoyo86220 a écrit :c'est pas se que j'attendais... sa me met 4 msgbox et sa quitte...
Ha ben oui, vous ne vous attendiez tout de même pas à ce que je fasse votre code quand même !!!
Je vous ai donné ce code pour l'exemple, vous deviez bien évidemment l'adapter à votre code. :roll:

De toute façon, votre code ne peut fonctionner dans son intégralité, car la boucle FOR va de 1 à 4, mais lorsque votre code arrive sur la première condition, il exécute fonction1(), et comme celle-ci ferme le code par un Exit, les 3 autres fonctions ne seront donc jamais exécutées !!!
Yoyo86220 a écrit :mais mintenant j'ai un probleme au lieu de m'écrire le msg que j'ai écri il m'écrit un "3" (il remplace tou le "$MessageBox" par un "3") pourquoi ?
Parce que la commande GUICtrlCreateInput renvoie un ID si elle réussit ou 0 si elle ne réussit pas.

Regardez dans l'aide comment les commandes fonctionnent.
Autre astuce, cliquez sur le mot GUICtrlCreateInput de votre code ci-dessus pour être re-dirigé vers l'aide en ligne.
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Avatar du membre
Yoyo86220
Niveau 6
Niveau 6
Messages : 238
Enregistré le : mer. 12 mars 2008 21:47
Status : Hors ligne

Re: [R] Fonction petit probleme...

#11

Message par Yoyo86220 »

Merci beaucoup j'ai trouvé !

solution :

Code : Tout sélectionner

 Send("broadcast " & (GUICtrlRead($MessageBox)) & "{ENTER}")
Sujet résolu!
tolf
Niveau 7
Niveau 7
Messages : 318
Enregistré le : ven. 15 févr. 2008 12:25
Localisation : Paris
Status : Hors ligne

Re: [R] Fonction petit probleme...

#12

Message par tolf »

Sinon, on peut simplifier le code en remplaçant ceci :

Code : Tout sélectionner

If $i = 1 Then Fonction1()
If $i = 2 Then Fonction2()
If $i = 3 Then Fonction3()
If $i = 4 Then Fonction4()
par ceci :

Code : Tout sélectionner

Call("Fonction" & $i)
Lisez la documentation d'AutoIt en français (et participez svp :mrgreen:) !

Mes UDF :
[/i][/b]
Répondre