PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV 2025 → Indirection de procédure
Indirection de procédure
Débuté par stephan.combes, 23 déc. 2004 11:12 - 7 réponses
Posté le 23 décembre 2004 - 11:12
Bonjour,

voici mon problème :
j'ai une combo "ComboProc" contenant une liste de procédures globales et une variable booleen "varParam" qui est le parametre que ma procédure attend.
Dans le traitement d'un bouton je fais :

Une de mes procédure globale s'appelle "ProcedureTest" et si je fais :
resultat = ProcedureTest(varParam) ca fonctionne correctement.

Mais si ProcedureTest est dans ma combo et que je fais :

resultat = {ComboProc[ComboProc] + "(varParam)"} est j'ai l'erreur :
CodeErreur : 1059
L'élément 'Procedure(varParam)' est inconnu.

C'est normal docteur ?

Merci par avance.

Stephan
Posté le 23 décembre 2004 - 11:38
A tester !!!

ExcuteTraitement(ComboProc[ComboProc] + "("+varParam+")",trtProcédure)

J'ai pas essayé mais ca devrait fonctionner !!!

Bonnes fêtes
Posté le 23 décembre 2004 - 11:49
Résultat = ExécuteTraitement("ProcedureTest", trtProcédure, varParam)

Voir l'aide en ligne sur ExecuteTraitement().
A+
Posté le 23 décembre 2004 - 12:25
Je ne crois pas qu'il soit possible de faire une indirection de procédure, par contre si tu as une solution ça m'intéresse (dans mon cas c'est pour appeler de façon dynamique les procédures de superchamps).
Tu peux peut-être essayer avec ExecuteTraitement (ComboProc[ComboProc], trtProcedure, varParam)

Sinon en attendant, moi j'utilise la fonction Compile ()
Posté le 23 décembre 2004 - 12:55
Essayez avec ExecuteTraitement(), on ne fait pas d'indirection sur une
procédure.

ex:

// Exécute la procédure LitFichier
// en lui passant en paramètre le nom du fichier
ExécuteTraitement (LitFichier, trtProcédure, NomFichier )

Dans votre cas :
ExécuteTraitement (ComboProc[ComboProc],trtProcédure, varParam )


Stephan wrote:

Bonjour,

voici mon problème :
j'ai une combo "ComboProc" contenant une liste de procédures globales et une variable booleen "varParam" qui est le parametre que ma procédure attend.
Dans le traitement d'un bouton je fais :

Une de mes procédure globale s'appelle "ProcedureTest" et si je fais :
resultat = ProcedureTest(varParam) ca fonctionne correctement.

Mais si ProcedureTest est dans ma combo et que je fais :

resultat = {ComboProc[ComboProc] + "(varParam)"} est j'ai l'erreur :
CodeErreur : 1059
L'élément 'Procedure(varParam)' est inconnu.

C'est normal docteur ?

Merci par avance.

Stephan
Posté le 23 décembre 2004 - 15:30
Et en retirant les guillemets de "(varParam)", ça donne quoi?
Posté le 23 décembre 2004 - 16:12
Merci à tous pour vos réponses.

Je ne peux pas tester pour le moment mais je vous tiens au courant dés l'année prochaine, à mon retour de congés ;-)

Bonnes fêtes à tous.

Stephan
Posté le 03 janvier 2005 - 12:37
En réponse au message :


Je ne crois pas qu'il soit possible de faire une indirection de procédure, par contre si tu as une solution ça m'intéresse (dans mon cas c'est pour appeler de façon dynamique les procédures de superchamps).
Tu peux peut-être essayer avec ExecuteTraitement (ComboProc[ComboProc], trtProcedure, varParam)

Sinon en attendant, moi j'utilise la fonction Compile ()


Bonjour est bonne année à tous,

De retour de congés j'ai testé avec ExecuteTraitement (ComboProc[ComboProc], trtProcedure, varParam) est ça fonctionne.

Encore merci à tous pour votre aide.


Stephan.