Page 1 sur 2

[..] Fonction crée et non reconnue

Posté : lun. 27 déc. 2010 13:03
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

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

Posté : lun. 27 déc. 2010 13:04
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 .

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

Posté : lun. 27 déc. 2010 13:19
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?

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

Posté : lun. 27 déc. 2010 13:23
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

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

Posté : lun. 27 déc. 2010 13:25
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 .

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

Posté : lun. 27 déc. 2010 13:32
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

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

Posté : lun. 27 déc. 2010 13:53
par Colin117
Je veux bien, en plus ça marche mais c'est pas très beau ^^'

Tout marche maintenant ?

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

Posté : lun. 27 déc. 2010 14:11
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" :)

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

Posté : lun. 27 déc. 2010 14:42
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

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

Posté : lun. 27 déc. 2010 15:04
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:

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

Posté : lun. 27 déc. 2010 16:05
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

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

Posté : lun. 27 déc. 2010 20:02
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

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

Posté : mar. 28 déc. 2010 13:29
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.

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

Posté : mar. 28 déc. 2010 22:20
par walicamoleca
Merci je vois où est l'erreur mais je ne sais pas comment y remedier

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

Posté : mer. 29 déc. 2010 10:55
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

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

Posté : mer. 29 déc. 2010 23:53
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

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

Posté : jeu. 30 déc. 2010 10:33
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.

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

Posté : jeu. 30 déc. 2010 14:01
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.

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

Posté : ven. 31 déc. 2010 10:46
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...

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

Posté : ven. 31 déc. 2010 16:43
par Colin117
J’avoue que c'est pas faux ^^. et j'avais pas non plus pensé à envoyer le @error en paramètre.