PC SOFT

FOROS PROFESIONALES
WINDEVWEBDEV y WINDEV Mobile

Inicio → WINDEV 2025 → Comment tester l'existence d'une fonction/procédure ?
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
Bonjour,

Je souhaite savoir si une fonction/procédure existe dans ma fenêtre ?
Avez-vous une idée ?

--

Bien à vous,
Fabrice De Weerd.

www.fawax.com - www.softweerd.com - www.be-dev.be
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
Bonsoir,

Je ne pense pas que ça existe sous Windev.

Vince

http://vroy1.free.fr
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")


Test:

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
Bonjour,

C'est une réponse tardive, mais à toutes fin utile il est possible de tester l'existence d'une procédure par le fonction ChercheProcédure().

https://doc.pcsoft.fr/fr-FR/?1000019367&name=ChercheProcedure