PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV 2024 → Appel procédure interne dans une procédure interne
Appel procédure interne dans une procédure interne
Débuté par François C., 28 juin 2017 15:03 - 1 réponse
Membre enregistré
1 623 messages
Popularité : +100 (114 votes)
Posté le 28 juin 2017 - 15:03
Bonjour,

Apparemment, il n'est pas possible d'appeler une procédure interne a partir d'une autre procédure interne (sauf si celle-ci sont imbriqués...)

petit exemple tout simple :
Procedure MaProc()
Procedure1()
Procedure2()

PROCEDURE INTERNE Procedure1()
// traitement
Routine()
FIN

PROCEDURE INTERNE Procedure1()
// traitement
Routine()
FIN

PROCEDURE INTERNE Routine()
// traitement
FIN


Une astuce pour remédier à ce problème ?
Message modifié, 28 juin 2017 - 15:03
Membre enregistré
96 messages
Popularité : +18 (20 votes)
Posté le 29 juin 2017 - 17:49
Bonjour,

Oui, il y a une astuce :

Utilisez une variable de type procédure. Votre code donnerait ça :

PROCEDURE MaProc()
PROCEDURE INTERNE iRoutine()
// traitement
Trace("Routine")
FIN

Routine est une Procédure = iRoutine

iProcedure1()
iProcedure2()

PROCEDURE INTERNE iProcedure1()
// traitement
Routine()
FIN

PROCEDURE INTERNE iProcedure2()
// traitement
Routine()
FIN


Pour info, j'ai préfixé les procédures internes par un i pour bien les distinguer de la variable Routine.

Si vous voulez plus d'info au sujet des procédures internes, j'ai écrit plusieurs articles à ce sujet sur mon blog :
- http://blog.ytreza.org/windev-ou-lart-dutiliser-les-procedures-internes/
- http://blog.ytreza.org/windev-ouverture-aux-closures/
- http://blog.ytreza.org/windev-place-aux-pseudo-classes/

J'espère vous avoir aidé !

--
Johjo aka Jonathan Laurent

Mon blog : blog.ytreza.org
Message modifié, 29 juin 2017 - 17:52