Quoi, tu ne connais pas PB ? Va falloir parcourir tout le forum alors !

Le forum (ô combien francophone) des utilisateurs de Powerbuilder.

Recherche rapide

Annonce

Certaines rubriques, dont des cours, sont uniquement visibles par les membres du forum ^^.
Dans la rubrique Liens & Références, vous avez accès à un sommaire de téléchargement, profitez-en !
Il existe maintenant un nouveau TOPIC "Votre CV en Ligne" accessible uniquement par demande.

#1 10-05-2012 08:24:06

Saria  
Membre Geek
Lieu: Lille
Date d'inscription: 24-02-2012
Messages: 25
Pépites: 117
Banque: 0

Retrouver le "parent" d'un userobject d'instance ?

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 :

Code:

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

 

#2 10-05-2012 08:41:14

xlat  
0xc0000005
Award: bf
Lieu: Tanger (طنج)
Date d'inscription: 04-12-2010
Messages: 720
Pépites: 11,343
Banque: 100,221,387,868,884,300
Site web

Re: Retrouver le "parent" d'un userobject d'instance ?

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)


https://lut.im/eJINqa9o/vAtyxD0h "Don't believe everything you read on the Internet"
    -- Abraham Lincoln

www.ngs.ma

Hors ligne

 

#3 10-05-2012 09:00:18

Saria  
Membre Geek
Lieu: Lille
Date d'inscription: 24-02-2012
Messages: 25
Pépites: 117
Banque: 0

Re: Retrouver le "parent" d'un userobject d'instance ?

Merci pour ta réponse.

Hors ligne

 

#4 10-05-2012 09:24:13

Geo  
Membre completement Geek
Lieu: Binche
Date d'inscription: 15-12-2008
Messages: 119
Pépites: 378
Banque: 0

Re: Retrouver le "parent" d'un userobject d'instance ?

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.


Rien ne sert de courir, il faut partir à point .

Hors ligne

 

#5 10-05-2012 09:29:31

xlat  
0xc0000005
Award: bf
Lieu: Tanger (طنج)
Date d'inscription: 04-12-2010
Messages: 720
Pépites: 11,343
Banque: 100,221,387,868,884,300
Site web

Re: Retrouver le "parent" d'un userobject d'instance ?

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.


https://lut.im/eJINqa9o/vAtyxD0h "Don't believe everything you read on the Internet"
    -- Abraham Lincoln

www.ngs.ma

Hors ligne

 

Pied de page des forums

Propulsé par FluxBB 1.2.22