Le forum (ô combien francophone) des utilisateurs de Powerbuilder.
Bonjour,
J'ai un objet uo_objet qui appel une fonction uf_fonction().
Je voudrais savoir comment faire depuis la fonction, pour modifier un champ texte par exemple qui se trouve dans l'objet.
Merci
Dernière modification par dark ryus (19-02-2009 15:59:09)
Hors ligne






Bonjour,
Tu modifies les arguments de ta fonction pour passer une référence de l'objet dans les arguments de la fonction.
Par contre, je te déconseille de structurer un programme de cette manière. Tu crées des dépendances et tu rends très difficile la moindre modification du programme.
Ex : si tu modifies le nom de la variable d'instance dans un user object, il te faudra également la modifier dans la fonction dans laquelle tu modifies le contenu de cette variable dans laquelle tu as passé une référence de l'objet.
Hors ligne














effectivement, comme le dit buck cela crée des dépendances
si tu veux rester le plus générique tu peux éventuellement procéder ainsi :
public function integer uf_fonction (powerobject ao_appelant, + les autres paramtres); Choose Case ao_appelant.ClassName() Case 'uo_objet' // cast dans le type uo_objet uo_objet luo_objet luo_objet = ao_appelant // traitement luo_objet.ii_variable = 123 // encore mieux avec un getter ;-) luo_objet.of_set_variable( 123 ) Case 'n_obj' // ... Case Else // ... End Choose Return 1 end function
Hors ligne
Merci pour l'aide.
Bon faut que je précise un peu le problème mais je vois que vous avez compris le principe.
Déjà, je sais que c'est pas bien de mettre la fonction à pars, mais c'est pas moi qui choisi ^^
En gros, j'ai une HProgressbar dans mon objet, et je veux la faire évoluer car il y a plusieurs fonctions appelées. Donc il faut que je récupère ce contrôle pour l'utiliser dans mes fonctions et faire évoluer sa barre de progression.
Je suis débutant alors je ne sais pas du tout comment faire pour passer ma HProgressbar dans l'appel de la fonction, et je ne sais pas comment la récupérer pour l'utiliser.
Pour le post précédent, je n'ai pas de powerobject dans mes attributs de fonction mais userobject.
Hors ligne
Vos idées m'ont inspiré et j'ai fini par trouver.
Merci à tous
Hors ligne