Le forum (ô combien francophone) des utilisateurs de Powerbuilder.
bonjour
Je voudrais executer une fonction de manière dynamique. en effet, je constitue
dans mon script une chaine de caractères contenant la fonction à exécuter et je
voudrais ensuite executer le contenu de la chaine. exemple
ls_fonction_a_executer = 'of_fonction' et je veux lancer of_fonction.
merci de votre aide
Hors ligne
Salut,
Celà n'est pas possible. Il y a bien une possibilité au travers d'un controle datawindow d'appeler la fonction evaluate (dw_1.describe ( "evaluate('of_fonction(133, ..... )' , 1 ) )
dans laquelle on appelerai une fonction globale ( seule les fonctions globale peuvent être appelées dans une datawindow ) mais cette méthode à quand même des incovénients. il n'est pas envisageable de lui passer des variables en référence par exemple. De plus il faut un controle datawindow.
Cdt
Yanis
Hors ligne
Salut,
et ben pour une première question tu tapes direct là où ça fait mal toi
ce que tu veux faire n'est pas possible de base dans PB.
Après il y a différents "bricolages" qui permettent plus ou moins d'y arriver mais si tu débutes en PB je ne te conseilles pas de te lancer là dedans.
Hors ligne
Fonction globale ou locale à un objet, pas possible en pbscript. Pour info c'est possible à partir d'une extension pbni (mais il faut programmer cette partie en c++, éventuellement de manière générique) : on peut chercher un "objet" fonction globale ou une méthode d'un objet par son nom.
Éventuellement, c'est possible pour un évènement (une fonction et un évènement d'objet, c'est la même chose sauf que c'est dans 2 listes séparées de l'objet, et qu'on peut surcharger un évènement mais pas une fonction). Il faut passer par nom_de_l_objet.TriggerEvent("nom_de_l_event")
Hors ligne