Le forum (ô combien francophone) des utilisateurs de Powerbuilder.
Bonjour,
Je n'arrive pas à accéder à la fenêtre qui utilise un userobject d'instance.
Soit une fenêtre : w_mafenetre
Soit un UserObject : uo_monuserobject
Dans ma fenêtre, je déclare et j'initialise une variable d'instance de type uo_monuserobject pour pouvoir utiliser ses fonctions : uo_monuserobject iuo_mon_uo
J'ai aussi d'autres variables d'instance dans cette fenêtre, comme par exemple il_mon_long.
Dans ma fenêtre, à un moment, j'appelle une des fonctions du UserObject : iuo_mon_uo.uf_une_fonction()
Seulement, au sein de cette fonction, j'ai besoin d'accèder à la valeur de il_mon_long (qui appartient à ma fenêtre)
J'ai essayé ainsi :
parent.il_mon_long
=> KO, car mon UO hérite d'un autre objet
En mode debug, j'ai retrouvé la fenêtre en question dans l'onglet "Objects in memory", et j'arrive bien à voir visuellement la valeur de la variable que je recherche :
+ w_mafenetre
...+ w_ma_fenetre
...+ dw_truc
...+ dw_machin
(...)
Lorsque je déplie le 2ème arbre, je vois ma variable :
+ w_mafenetre
...+ w_ma_fenetre
...... boolean ib_truc
...... integer ii_machin
...... long il_mon_long
...... long il_truc
(...)
Mais techniquement, je ne vois pas comment "remonter" à ma fenêtre au sein de mon UO ? J'aurais juste besoin de lire la valeur de il_mon_long pour faire un test dessus, sans la modifier.
Merci d'avance pour vos réponses.
Hors ligne
Bonjour,
si ce n'est pas un visualuserobject, Parent / GetParent() ne pourrons par t'aider; pour ce faire il faudrait ajouter une variable d'instance dans ton userobject "ton_window_type iw_parent", et l'initialiser après le create de ton userobject,
une autre méthode serait d'ajouter ta window en paramètre de ta fonction uf_une_fonction( ton_window_type aw_caller ),
à toi de voir le meilleur design
Dernière modification par xlat (10-05-2012 08:41:27)
Hors ligne
Merci pour ta réponse.
Hors ligne
Bonjour,
si tu n'as besoin que de il_mon_long, tu peux aussi le passer à ta fonction 'uo.uf_une_fonction(long al_mon_long) au lieu de passer la window.
L'avantage est que tu pourras appeler la fonction de ton UO même hors d'une fenêtre.
Hors ligne
Geo a écrit:
Bonjour,
si tu n'as besoin que de il_mon_long, tu peux aussi le passer à ta fonction 'uo.uf_une_fonction(long al_mon_long) au lieu de passer la window.
L'avantage est que tu pourras appeler la fonction de ton UO même hors d'une fenêtre.
Exacte, plus on découple, plus on réutilise facilement le code.
Hors ligne