Page 1 sur 1
[R] Fonction petit probleme...
Posté : lun. 28 avr. 2008 21:41
par Yoyo86220
► Afficher le texte
Code : Tout sélectionner
#include <GuiConstants.au3>
#include <Sound.au3>
Global $Largeur = 375, $Hauteur = 300, $Titre = "Commande Du Serveur "
Local $Ver = "Version Test"
#region ### START Koda GUI section ###
$GUI = GUICreate($Titre & $Ver, $Largeur, $Hauteur, -1, -1)
$MessageBox = GUICtrlCreateInput("Ecris ta commande ici", 120, 50)
$Button = GUICtrlCreateButton("Envoyer", 290, 270, 75, 25)
$case1 = GUICtrlCreateCheckbox("System Message", 10, 10, 200, 20)
$case2 = GUICtrlCreateCheckbox("Message Joueur", 10, 30, 200, 20)
$case3 = GUICtrlCreateCheckbox("Redémmarrer (Temps)", 10, 50, 200, 20)
$case4 = GUICtrlCreateCheckbox("Ban Player", 10, 70, 200, 20)
GUISetState()
#endregion ### START Koda GUI section ###
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $Button
For $i = 1 to 4
If BitAND(GUICtrlRead(Eval("case" & $i)), $GUI_CHECKED) Then Fonction & $i() ; <== voici mon probleme il m'indique une erreur comment faire ? pour "Fonction & $i()"
GUICtrlSetState(eval("case" & $i),$GUI_UNCHECKED)
Next
Case $GUI_EVENT_CLOSE
Fin()
EndSwitch
WEnd
Func Fonction1()
MouseClick("left", 20, 20, 1)
Sleep(1000)
Send("broadcast " & $MessageBox & "{ENTER}")
EXIT
EndFunc
Func Fonction2()
$Player = InputBox("Nom Du Player?", "Quel est le nom du Joueur?")
MouseClick("left", 20, 20, 1)
Sleep(1000)
Send("send " & $Player & " " & $MessageBox & "{ENTER}")
EXIT
EndFunc
Func Fonction3()
MouseClick("left", 20, 20, 1)
Sleep(1000)
Send("shutdown " & $MessageBox & "{ENTER}")
EXIT
EndFunc
Func Fonction4()
MouseClick("left", 20, 20, 1)
Sleep(1000)
Send("ban " & $MessageBox & "{ENTER}")
EXIT
EndFunc
Exit
Voici mon script (mon problem est en vert dans le srcipt)
Re: [..] Fonction petit probleme...
Posté : lun. 28 avr. 2008 22:17
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 :
mais
$1() ne représente pas grand chose pour AutoIt.
Vous auriez dut écrire ceci :
bien que je ne soit pas sur de son fonctionnement.
Re: [..] Fonction petit probleme...
Posté : lun. 28 avr. 2008 22:22
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.
Re: [..] Fonction petit probleme...
Posté : lun. 28 avr. 2008 22:28
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()
Re: [..] Fonction petit probleme...
Posté : lun. 28 avr. 2008 22:37
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.
Re: [..] Fonction petit probleme...
Posté : lun. 28 avr. 2008 22:51
par Yoyo86220
C'est se que je veux faire mais sans succé...
Re: [..] Fonction petit probleme...
Posté : lun. 28 avr. 2008 23:06
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
Re: [..] Fonction petit probleme...
Posté : mar. 29 avr. 2008 06:59
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...
Re: [..] Fonction petit probleme...
Posté : mar. 29 avr. 2008 07:07
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 ?
Re: [..] Fonction petit probleme...
Posté : mar. 29 avr. 2008 09:08
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.
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.
Re: [R] Fonction petit probleme...
Posté : mar. 29 avr. 2008 19:00
par Yoyo86220
Merci beaucoup j'ai trouvé !
solution :
Sujet résolu!
Re: [R] Fonction petit probleme...
Posté : mer. 07 mai 2008 14:39
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 :