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 04-02-2009 11:44:45

patricktobou  
Membre Geek
Lieu: Cameroun
Date d'inscription: 31-10-2008
Messages: 57
Pépites: 309
Banque: 0

[RESOLU] Interaction Fenetre appelante - Fenetre appelee

Bonjour à tous,

J'ai deux fenêtres(window) : w_fen1 et w_fen2w_fen1  appelle  w_fen2.
Je voudrais à partir de w_fen2 accéder et modifier les objets de w_fen1 . J'ai cré sur w_fen2 un évènement personnalisé ue_keypress mappé sur pbm_keydown et c'est à l'intérieur que j'écris les instructions pour modifier les objets de w_fen1

Lorsque je fais w_fen1.objet.propriete ça ne marche pas et j'obtient le message d'erreur suivant:    Null object reference at line 28 in ue_keypress event of object w_fen2

Comment résoudre ce problème?
Merci

Dernière modification par patricktobou (09-02-2009 13:40:22)

Hors ligne

 

#2 04-02-2009 11:50:35

Pilou007  
Membre Geek
Lieu: Bordeaux
Date d'inscription: 01-02-2007
Messages: 69
Pépites: 313
Banque: 0

Re: [RESOLU] Interaction Fenetre appelante - Fenetre appelee

Salut
Est-ce que tu lui passe une référence sur la fenêtre appelante(w_fen1)?

avec un code comme celui-ci, ça fonctionne..

Code: pb

//dans la fenêtre appelante
openwithparm( w_str_dialog, parent)//sous l'event clicked d'un cb

//dans l'open de la fenêtre appelée
window lw_test

lw_test = message.powerobjectparm

lw_test.backcolor = rgb(0, 128, 0)//ici je modifie une propriété de la fenêtre appelante

commandButton lcb_test
lcb_test =lw_test.control[1] 

lcb_test.text = "Test"//ici je modifie une propriété d'un objet de la fenêtre appelante

Dernière modification par Pilou007 (04-02-2009 13:55:25)

Hors ligne

 

#3 04-02-2009 14:00:58

hellkinder  
Kinder Surprise
Award: chocomordutk6
Lieu: Bordeaux
Date d'inscription: 12-09-2006
Messages: 902
Pépites: 0
Banque: 10,524,230,367,490

Re: [RESOLU] Interaction Fenetre appelante - Fenetre appelee

Code: pb

boolean lb_test

lb_test = isValid (w_fen1)


Si tu fais ce code dans ta fenetre w_fen2 que te renvoie isValid?

Si lb_test = true alors la propriété de la w_fen1 que tu essaies d'atteindre n'existe pas.
Si lb_test = false c'est que ta fenêtre w_fen1 est fermée ou introuvable.


http://img510.imageshack.us/img510/4229/userbar1204625572ha9.gif
"Pour la première fois dans l'histoire de l'humanité, tous les peuples de la Terre ne forment qu'un"

Hors ligne

 

#4 06-02-2009 13:20:03

patricktobou  
Membre Geek
Lieu: Cameroun
Date d'inscription: 31-10-2008
Messages: 57
Pépites: 309
Banque: 0

Re: [RESOLU] Interaction Fenetre appelante - Fenetre appelee

Bonjour pilou007
J'ai essayé avec ta procédure. Elle aurait marché si mon bouton qui appelle la w_fen2 était directement lié à la fenêtre Or il se trouve que le bouton qui appelle w_fen2 est dans un tabpage. Voici le message d'erreur que j'obtiens maintenant : Cannot assign object of type tabpage_2 to variable of type window at line 6 in open event of object : w_fen2.
J'ai pensé que la déclaration window lw_test imposait que l'appelant soit de type window Or tandis que dans mon cas, l'appelant est un bouton qui se trouve non pas directement sur la fenêtre, mais sur un tabpage qui se trouve dans la fenêtre.
Comment modifier cette syntaxe?
Merci.

Hors ligne

 

#5 06-02-2009 15:14:16

Pilou007  
Membre Geek
Lieu: Bordeaux
Date d'inscription: 01-02-2007
Messages: 69
Pépites: 313
Banque: 0

Re: [RESOLU] Interaction Fenetre appelante - Fenetre appelee

Normalement, ce que dit hellkinder est vrai, si ta fenêtre appelante est valide, tu dois pouvoir acceder à tous ses objets...
Donc théoriquement, tu dois pouvoir faire un truc du style:

Code: pb

w_fen1.tab_nom.tabpage_2.cb_nom

Sinon, tu fais un edit source de ta fenêtre, tu fait une recherche sur "control" et tu dois trouver le tableau des control insérer dans ta fenêtre, en l'occurence ton tab et donc tu peux faire...

Code: pb

tab ltab_test
ltab_test =lw_test.control[x]
ltab_test.cb_nom.text = "toto"


Ou encore tu lances ton application en debug et tu regardes ce que tu as dans tes variable globales, normalement ta fenêtre w_fen1 devrait y être, si tu dépli le treeview associé, tu devrait retrouver ton tab et les controles qui sont dessus...

Message de modération

sans espaces!

Hors ligne

 

#6 09-02-2009 13:39:38

patricktobou  
Membre Geek
Lieu: Cameroun
Date d'inscription: 31-10-2008
Messages: 57
Pépites: 309
Banque: 0

Re: [RESOLU] Interaction Fenetre appelante - Fenetre appelee

bonjour ,
Après de multiples essais sans succès, j'ai trouvé une astuce qui consiste à mettre les valeurs de w_fen2 dans des variables globales (pour qu'elles soient visibles par toutes les feuilles) et les récupérer dans w_fen1 pour les affecter dans les contrôles de w_fen1.
Merci à pilou007 et hellkinder pour leurs interventions et à bientôt sur le forum.

Hors ligne

 

Pied de page des forums

Propulsé par FluxBB 1.2.22