[..] Fonction crée et non reconnue

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
walicamoleca
Niveau 1
Niveau 1
Messages : 8
Enregistré le : lun. 27 déc. 2010 12:38
Status : Hors ligne

[..] Fonction crée et non reconnue

#1

Message par walicamoleca »

bonjour j'ai in problème dans une fonction que j'ai créer et qui n'est pas reconnu par autoit quand j'utilise le script à l'interieur de la fonction seul ça marche sinon pour ma fonction ...
je" vous présente la fonction

Code : Tout sélectionner

Func quitter()
    if @error=1 then 
    msgbox(0,"","à bientot")
    Exit
EndIf
Return ""
EndFunc
 
elle devait permettre de quitter si le bouton cancel est appuyé
voici tout mon script

Code : Tout sélectionner

Global $value1,$value2,$alea,$proposition,$introduit
$value1=inputbox("question","entrez la valeur minimale")
quitter()
$value2=inputbox("question","entrez la valeur maximale")
quitter()
$alea=random($value1,$value2,1)
while 1
while 1
$proposition=inputbox(0,"entrez le bon chiffre")
quitter()
EndIf
if $proposition>$alea Then 
    MsgBox(0,"","superieure à la valeur")
ElseIf $proposition<$alea Then 
    msgbox(0,"","inferieur à la valeur")
Else  
    ExitLoop
EndIf
WEnd
$answer=msgbox(4,"","correcte! voulez-vous recomencer?")
If $answer=7 then Exitloop
    WEnd
Func quitter()
    if @error=1 then 
    msgbox(0,"","à bientot")
    Exit
EndIf
Return ""
EndFunc
 

si quelqu’un pouvait me dire ou est le problème. merci d'avance
Avatar du membre
GELDROC
Niveau 6
Niveau 6
Messages : 295
Enregistré le : sam. 10 oct. 2009 10:15
Status : Hors ligne

Re: [..] fonction créer et non reconnu

#2

Message par GELDROC »

je serai vous je lirai très vite les règle de présentation d'un message avent que votre message soit mis a la poubelle .
walicamoleca
Niveau 1
Niveau 1
Messages : 8
Enregistré le : lun. 27 déc. 2010 12:38
Status : Hors ligne

Re: [..] fonction créer et non reconnu

#3

Message par walicamoleca »

j'ai pas compris où vous voulez en venir je suis nouveau sur le forum
y a t-il quelque chose qui ne va pas avec mon message?
Colin117
Niveau 5
Niveau 5
Messages : 114
Enregistré le : jeu. 18 nov. 2010 17:57
Localisation : Vers là bas !
Status : Hors ligne

Re: [..] fonction créer et non reconnu

#4

Message par Colin117 »

Bien j'ai regardé un p'tit peu ton script,

J'ai trouvé plusieurs erreurs. Regardez:

Code : Tout sélectionner

Global $value1,$value2,$alea,$proposition,$introduit
$value1=inputbox("question","entrez la valeur minimale")
quitter()
$value2=inputbox("question","entrez la valeur maximale")
quitter()
$alea=random($value1,$value2,1)
while 1
while 1
$proposition=inputbox(0,"entrez le bon chiffre")
quitter()
[color=#FF0000]EndIf[/color] ;- pour commencer de EndIf sans If avant...
if $proposition>$alea Then 
    MsgBox(0,"","superieure à la valeur")
ElseIf $proposition<$alea Then 
    msgbox(0,"","inferieur à la valeur")
Else  
    ExitLoop
EndIf
WEnd
$answer=msgbox(4,"","correcte! voulez-vous recomencer?")
If $answer=7 then Exitloop
    WEnd
Func quitter()
    if @error=1 then 
    msgbox(0,"","à bientot")
    Exit
EndIf
Return ""
EndFunc
 
Et je dirais même plus que la fonction quitter, ça fait pas très jolie. Mais j'ai réussi à corriger vos erreurs. Maintenant c'est à vous de corriger. Je vous aiderez ne vous en faites pas. Mais regardez bien votre script !


Colin117
► Afficher le texte
Avatar du membre
GELDROC
Niveau 6
Niveau 6
Messages : 295
Enregistré le : sam. 10 oct. 2009 10:15
Status : Hors ligne

Re: [..] fonction créer et non reconnu

#5

Message par GELDROC »

non plus maintenant ...


sinon pour commencer un IF @erreur then ce mais après une fonction et la il ni en a pas .
walicamoleca
Niveau 1
Niveau 1
Messages : 8
Enregistré le : lun. 27 déc. 2010 12:38
Status : Hors ligne

Re: [..] fonction créer et non reconnu

#6

Message par walicamoleca »

merci beaucoup pour vos réponses pour le EndIf je l'ai oublié car je remplaçais par le contenu de la fonction et ça marchait à part ça j'ignore comment faire pour y remédier. ce que je voulais faire c'est une fois que l'utilisateur appuie sur cancel alors il sort du programme et au lieu de répéter: if @error=1 then
msgbox(0,"","à bientot")
Exit
EndIf
j'ai voulu créer une fonction afin de faire ce travail
Colin117
Niveau 5
Niveau 5
Messages : 114
Enregistré le : jeu. 18 nov. 2010 17:57
Localisation : Vers là bas !
Status : Hors ligne

Re: [..] fonction créer et non reconnu

#7

Message par Colin117 »

Je veux bien, en plus ça marche mais c'est pas très beau ^^'

Tout marche maintenant ?
► Afficher le texte
walicamoleca
Niveau 1
Niveau 1
Messages : 8
Enregistré le : lun. 27 déc. 2010 12:38
Status : Hors ligne

Re: [..] fonction créer et non reconnu

#8

Message par walicamoleca »

je ne parlai pas du script Colin117 il marche le EndIf c'est juste que je l'ai oublié mais ce que je voulais faire c'est une fois durant le programme l'utilisateur appuie sur Cancel il sort de celui-ci et merci pour tes interventions
en ce qui concerne la beauté du programme je ne suis qu'un "Beginner" :)
Colin117
Niveau 5
Niveau 5
Messages : 114
Enregistré le : jeu. 18 nov. 2010 17:57
Localisation : Vers là bas !
Status : Hors ligne

Re: [..] fonction créer et non reconnu

#9

Message par Colin117 »

Bref je suis sympas, avant de répondre j'avais refais ton script:
► Afficher le texteCode
Faire un code beau c'est aussi faire en sorte qu'il soit lisible. C'est en espaçant les fonctions etc... que j'ai vue le EndIf... voila voila, Bonne continuation !

PS: N'oubliez pas de mettre la balise [R] devant ton tire en éditant le premier message.

Cordialement
Colin117
► Afficher le texte
walicamoleca
Niveau 1
Niveau 1
Messages : 8
Enregistré le : lun. 27 déc. 2010 12:38
Status : Hors ligne

Re: [..] fonction créer et non reconnu

#10

Message par walicamoleca »

Navré de le dire Colin117 mais le problème réside encore quand j'appuie sur Cancel la fonction quitter ne s’exécute pas et comme avant il continue en attribuant la valeur 0 à la variable et c’était ça mon problème depuis le début.Merci de vouloir m'aider.En ce qui concerne ton script il est bien plus beau que le mien je l'avoue :lol:
Colin117
Niveau 5
Niveau 5
Messages : 114
Enregistré le : jeu. 18 nov. 2010 17:57
Localisation : Vers là bas !
Status : Hors ligne

Re: [..] fonction créer et non reconnu

#11

Message par Colin117 »

Tient voila un indice, tu copie ça dans site, tu appuis sur F5 et tu regarde la fenêtre en bas de site ce qu'il te dit quand tu fais annuler.
► Afficher le texteCode
Explication:

_quit($LInputBoxAVerifier)

@Error before = Le @error avant d'entrer dans la fonction Quit
@Error After = Le @error après etre entrer dans la fonction quit et avant d'être entrer dans le If
$InputBox = j'ai fait en sorte que si c'est égale à "" ça deviens NULL
$Alea = pour connaitre la valeur d'Alea
► Afficher le texte
walicamoleca
Niveau 1
Niveau 1
Messages : 8
Enregistré le : lun. 27 déc. 2010 12:38
Status : Hors ligne

Re: [..] fonction créer et non reconnu

#12

Message par walicamoleca »

non plus ça ne marche pas quand on clique sur Cancel de l'inputbox ou bien de celui où on intègre la valeur minimal que celui de la valeur maximal il continue comme avant et le programme ne s’arrête pas
Colin117
Niveau 5
Niveau 5
Messages : 114
Enregistré le : jeu. 18 nov. 2010 17:57
Localisation : Vers là bas !
Status : Hors ligne

Re: [..] Fonction crée et non reconnue

#13

Message par Colin117 »

Ce que je voulais vous faire remarquer, c'est que avant que vous passiez par la fonction quitter, le @error était égale à 1 mais dans la fonction quitter, le @error redeviens égale à 0...


Mais pour cela il fallait regarder la case blanche en dessous de votre script dans Scite, après avoir appuyer sur F5.
► Afficher le texte
walicamoleca
Niveau 1
Niveau 1
Messages : 8
Enregistré le : lun. 27 déc. 2010 12:38
Status : Hors ligne

Re: [..] Fonction crée et non reconnue

#14

Message par walicamoleca »

Merci je vois où est l'erreur mais je ne sais pas comment y remedier
Colin117
Niveau 5
Niveau 5
Messages : 114
Enregistré le : jeu. 18 nov. 2010 17:57
Localisation : Vers là bas !
Status : Hors ligne

Re: [..] Fonction crée et non reconnue

#15

Message par Colin117 »

C'est pourtant simple, Si tu veux bien programmer il faut faire plusieur test.

Voila une solution qui me vient à l'idée:

Comme @Error change dès que l'on entre dans la fonction, et que on ne va pas refaire un if après les InputBox, Il faut mettre la l'InputBox dans la fonction. Pour cela nous allons créer une fonction, à la quelle on envois les valeurs de l'InputBox et elle en créer une. Par la suite, nous vérifierons donc le @Error.

Une petite indication, pour entrer des paramètre tu fais Func _NomDeLaFonction($Param1,$Param2, ..., $ParamN) .

Ce qui donne _NomDeLaFonction(1, "blabla", 154, 164, 0x150000, ...) <= ceci n'est qu'un exemple d'une fonction avec des paramètres



Colin117
► Afficher le texte
Avatar du membre
legend
Niveau 7
Niveau 7
Messages : 472
Enregistré le : dim. 26 sept. 2010 12:55
Status : Hors ligne

Re: [..] Fonction crée et non reconnue

#16

Message par legend »

pourquoi ne pas faire tout simplement un @error dans un variable juste aprés l'inputbox.
ça serait :
inputbox ("", "")
$error = @error
Je crois que sa marche bien.
Bonne journée
Colin117
Niveau 5
Niveau 5
Messages : 114
Enregistré le : jeu. 18 nov. 2010 17:57
Localisation : Vers là bas !
Status : Hors ligne

Re: [..] Fonction crée et non reconnue

#17

Message par Colin117 »

C'est bien aussi ! ça évite de tout chambouler. Mais encore une fois y'a le problème de la répétition. Imagine que tu as 50 inputbox... Au bout d'un temps, ça va plus aller et ça va alourdir pour rien le code. Sinon pour ici ça marcherai.
► Afficher le texte
Avatar du membre
legend
Niveau 7
Niveau 7
Messages : 472
Enregistré le : dim. 26 sept. 2010 12:55
Status : Hors ligne

Re: [..] Fonction crée et non reconnue

#18

Message par legend »

Bien, j'ai pas bien lu le code de ce sujet.
Mais la manipulation de variables qui n'est pas une commande ne prend presque rien comme temp et processus.
par exemple tu veux attribuer a un variable la valeur 1 ou la valeur obtenue d'un macros c'est presque le même truc et sa prendra une ou quelques ms.
aussi pour If . . . endif c'est presque le même truc.
Enfin sa ressemble un peut au fonctionnement de la calculatrice.
Bonne journée.
SagePourpre
Niveau 7
Niveau 7
Messages : 442
Enregistré le : dim. 06 juil. 2008 09:11
Status : Hors ligne

Re: [..] Fonction crée et non reconnue

#19

Message par SagePourpre »

Comme il a été mentionné plus tôt, il est impossible de détecter l'erreur de la fonction précédente dans une nouvelle
fonction puisque @error est automatiquement remis à 0 en entrant dans la nouvelle fonction.

Il faut donc passer @error en paramètre à ta fonction de gestion d'erreur comme ceci

Code : Tout sélectionner

$value1=inputbox("question","entrez la valeur minimale")
quitter(@error)

...

Func quitter($error)
    if $error=1 then 
    msgbox(0,"","à bientot")
    Exit
EndIf
Return ""
EndFunc
 






Colin117 a écrit :Mais encore une fois y'a le problème de la répétition. Imagine que tu as 50 inputbox... Au bout d'un temps, ça va plus aller et ça va alourdir pour rien le code.
La création de 50 inputbox devraient toujours se faire à l'aide d'une boucle, de maths (pour le placement) et d'un tableau contenant
le nom des contrôles.

Donc vu sous cet angle, la solution de "Legend" n'alourdirait pas le code le moindrement...
Le Sage Pourpre, pour qui la vie est tellement
plus belle vue du haut de son Pouf = )
Colin117
Niveau 5
Niveau 5
Messages : 114
Enregistré le : jeu. 18 nov. 2010 17:57
Localisation : Vers là bas !
Status : Hors ligne

Re: [..] Fonction crée et non reconnue

#20

Message par Colin117 »

J’avoue que c'est pas faux ^^. et j'avais pas non plus pensé à envoyer le @error en paramètre.
► Afficher le texte
Répondre