|
| Comment tester l'existence d'une fonction/procédure ? |
| Iniciado por Fabrice.De.Weerd, 17,sep. 2008 20:08 - 9 respuestas |
| |
| | | |
|
| |
| Publicado el 17,septiembre 2008 - 20:08 |
| |
| |
| | | |
|
| | |
| |
| Publicado el 18,septiembre 2008 - 01:50 |
Fabrice De Weerd a écrit :
Bonjour,
Je souhaite savoir si une fonction/procédure existe dans ma fenêtre ? Avez-vous une idée ?
Bonsoir,
QUAND EXCEPTION DANS ExécuteTraitement(FenEnCours()+".maprocedure",trtProcédure) FAIRE FIN |
| |
| |
| | | |
|
| | |
| |
| Publicado el 18,septiembre 2008 - 01:50 |
| |
| |
| | | |
|
| | |
| |
| Publicado el 18,septiembre 2008 - 10:16 |
Merci mais je vois 2 problèmes à ta solution.
1/ La procédure est exécutée, alors que je veux juste savoir si elle existe, mais bon ... 2/ Si la procedure appelée provoque une erreur, elle est considérée comme inexistante. Juste non ?
--
Bien à vous, Fabrice De Weerd.
www.fawax.com - www.softweerd.com - www.be-dev.be
"Daniel" <nospam@wanadoo.fr> a écrit dans le message de news:48d140a4$1@news.pcsoft.fr...
Fabrice De Weerd a écrit : Bonjour,
Je souhaite savoir si une fonction/procédure existe dans ma fenêtre ? Avez-vous une idée ?
Bonsoir, QUAND EXCEPTION DANS ExécuteTraitement(FenEnCours()+".maprocedure",trtProcédure) FAIRE FIN |
| |
| |
| | | |
|
| | |
| |
| Publicado el 18,septiembre 2008 - 11:36 |
Bonjour,
en branchant la procédure sur un événement on peut intercepter l'erreur 1027 si la procédure n'existe pas
iEVT est un entier
QUAND EXCEPTION DANS iEVT=Evénement("MaProcédure","*.*",1024) FinEvénement(iEVT) Info("La procédure existe") FAIRE SI ExceptionInfo(errCode)27 ALORS Info("La procédure n'existe pas") FIN FIN |
| |
| |
| | | |
|
| | |
| |
| Publicado el 18,septiembre 2008 - 11:39 |
Bonjour,
Fabrice De Weerd a écrit :
Merci mais je vois 2 problèmes à ta solution.
1/ La procédure est exécutée, alors que je veux juste savoir si elle existe, mais bon ... 2/ Si la procedure appelée provoque une erreur, elle est considérée comme inexistante. Juste non ?
Pour le point 1, on peut toujours mettre un paramètre dans la procédure qui évitera son exécution totale du style
maprocedure(bExiste est un booleen = vrai)
SI bExiste ALORS retour
Pour le point 2, effectivement il faut trapper l'erreur dans la procédure, pour éviter le cas que tu cites. Mais bon normalement tu ne devrais pas avoir d'erreur dans tes procédures.
Maintenant, il y a peut être une solution en faisant une erreur volontaire dans le executetraitement en mettant le mauvais type de traitement. Je ne sais pas, je n'ai jamais essayé, mais si tu mets à la place de trtprocedure une autre constante, lors de l'exécution de ce code et si la procedure existe il faudrait voir l'erreur renvoyée. |
| |
| |
| | | |
|
| | |
| |
| Publicado el 18,septiembre 2008 - 12:15 |
Bonjour.
J'ai repris la solution de Nicolas qui marche nickel et que j'ai mis simplement dans une fonction (voir ci-dessous)
Bonne journée et encore merci à tous pour votre aide 
FONCTION fFonctionExiste(LOCAL pNomFonction est une chaîne = "") LOCAL bRetVal est un booléen = Faux nEvent est un entier = 0
QUAND EXCEPTION DANS nEvent = Evénement(pNomFonction,"*.*",1024) FinEvénement(nEvent) bRetVal = Vrai FAIRE SI ExceptionInfo(errCode)= 1027 ALORS bRetVal = Faux FIN FIN
RENVOYER bRetVal
--
Bien à vous, Fabrice De Weerd.
www.fawax.com - www.softweerd.com - www.be-dev.be
"Nicolas Fonteyne" <nfonteyne@cetra.fr> a écrit dans le message de news:48d1ffdd$1@news.pcsoft.fr...
Bonjour,
en branchant la procédure sur un événement on peut intercepter l'erreur 1027 si la procédure n'existe pas
iEVT est un entier
QUAND EXCEPTION DANS iEVT=Evénement("MaProcédure","*.*",1024) FinEvénement(iEVT) Info("La procédure existe") FAIRE SI ExceptionInfo(errCode)27 ALORS Info("La procédure n'existe pas") FIN FIN
|
| |
| |
| | | |
|
| | |
| |
| Publicado el 18,septiembre 2008 - 12:54 |
Fabrice De Weerd a écrit :
Bonjour. J'ai repris la solution de Nicolas qui marche nickel et que j'ai mis simplement dans une fonction (voir ci-dessous) Bonne journée et encore merci à tous pour votre aide  FONCTION fFonctionExiste(LOCAL pNomFonction est une chaîne = "") LOCAL bRetVal est un booléen = Faux nEvent est un entier = 0 QUAND EXCEPTION DANS nEvent = Evénement(pNomFonction,"*.*",1024) FinEvénement(nEvent) bRetVal = Vrai FAIRE SI ExceptionInfo(errCode)= 1027 ALORS bRetVal = Faux FIN FIN RENVOYER bRetVal
La procédure pNomfonction n'est pas exécutée ? |
| |
| |
| | | |
|
| | |
| |
| Publicado el 18,septiembre 2008 - 13:10 |
Pour le test que j'en ai fait, non.
>>Exemple : Procedure TOTO Info("Hello Word")
Si fFonctionExiste("TOTO") alors .... Fin
L'exécution de ce code test n'affiche pas le message hello world.
--
Bien à vous, Fabrice De Weerd.
www.fawax.com - www.softweerd.com - www.be-dev.be
"Daniel" <nospam@wanadoo.fr> a écrit dans le message de news:48d2155f@news.pcsoft.fr...
Fabrice De Weerd a écrit : Bonjour. J'ai repris la solution de Nicolas qui marche nickel et que j'ai mis simplement dans une fonction (voir ci-dessous) Bonne journée et encore merci à tous pour votre aide  FONCTION fFonctionExiste(LOCAL pNomFonction est une chaîne = "") LOCAL bRetVal est un booléen = Faux nEvent est un entier = 0 QUAND EXCEPTION DANS nEvent = Evénement(pNomFonction,"*.*",1024) FinEvénement(nEvent) bRetVal = Vrai FAIRE SI ExceptionInfo(errCode)= 1027 ALORS bRetVal = Faux FIN FIN RENVOYER bRetVal La procédure pNomfonction n'est pas exécutée ? |
| |
| |
| | | |
|
| | |
| |
| Publicado el 19,diciembre 2018 - 10:43 |
| |
| |
| | | |
|
| | | | |
| | |
|