Le forum (ô combien francophone) des utilisateurs de Powerbuilder.
Salut les p'tit loups...
Je vous explique le contexte: PB5.0 (et oui!!!) qui travaille avec la PowerLib de chez Novalys...
Dans l'objet u_dw de la powerlib, les évènements sont tous codé en faisant appel à un moteur (u_moteur_dw) ce qui donne par exemple:
dans l'évènement "Clicked", avec guo_app user object application, iuo_mdw, user object "moteur" dw
guo_app.iuo_mdw.uf_clicked(this,row)
Dans le contexte PowerLib, il est, contractuellement, interdit de modifier les objets, mais mon client, à étendu les moteurs (u_moteur_dw_e), mais pas le u_dw (ce qui est une erreur, je vous l'accorde...). Donc je n'ai pas le droit de modifier u_dw, par contre comme chaque évènement appelle une fonction du moteur étendu, comme expliqué au dessus, je ne peux coder que dans le moteur étendu...
Mon problème:
Dans l'évènement "Clicked", j'aurais besoin de récupérer la colonne sur laquelle j'ai "clické", or il s'avère qu'un getColum() ne renvoi rien du tout dans l'évènement "Clicked" et que la colonne "clickée" est connue que après cet évènement...
Question: Est-ce que l'un de vous connait l'enchainement des évènements, après "clicked" y a t-il un autre évènement qui s'enchaine (je ne peux pas utiliser l'itemfocuschanged pour des raisons trop longues à expliquer...)????
Merci de votre aide
Pascal
Dernière modification par Pilou007 (24-02-2010 14:27:20)
Hors ligne
Bonjour,
Dans ce cas, tu peux toujours créer ton propre événement personnalisé (ex : ue_postclicked) et le déclencher dans l'événement clicked (Appel Post) :
this.PostEvent("ue_postclicked")
Hors ligne
Pilou007 a écrit:
Dans le contexte PowerLib, il est, contractuellement, interdit de modifier les objets...
Est-ce que cela veut dire que Novalys assure toujours le support de la Powerlib ? A priori elle n'est plus commercialisée depuis plusieurs années non ?
Hors ligne
Salut
Buck, comme je l'explique, je ne peut pas modifier ou ajouter d'évènement à l'objet u_dw...
Ce que je peut faire, c'est ajouter du code dans les fonctions du moteur... Dans mon cas, je peux ajouter du code dans la fonction uf_clicked du moteur, mais comme je ne peux pas y récupérer mon num de colonne (car pas encore sorti de l'event clicked), il me faut autre chose...
Par exemple, si l'évènement clicked déclenche l'event "toto", je pourrais modifier le code de la fonction uf_toto (si elle est codée...) du moteur....
D'ou ma question, comment s'enchaine les évènements, en particulier, est-ce qu'il y a un event qui est déclenché après le clicked de la dw?
Chrnico, je n'en sais rien du tout... je prends les info que l'on m'a donné ici, je n'avais jamais travaillé avec cette powerlib avant...
Bye
Pascal
Hors ligne
Bonjour,
Tu peux utiliser la méthode GetObjectAtPointer() pour obtenir le nom de la colonne cliquée dans un événement clicked.
Hors ligne
Salut Buck
Oui ça semblait être une bonne idée, mais apparemment ça ne fonctionne pas... Je ne peux pas travailler dans l'event, mais que dans la fonction uf_clicked du moteur et qui est appelé comme ceci dans l'event clicked:
guo_app.iuo_mdw.uf_clicked(this,row)
Avec ce code dans la fonction uf_clicked ça ne marche pas:
string ls_test
ls_test =adw_parm.GetObjectAtPointer()
Mais ls_test reste null....
par contre j'ai trouvé la solution, l'event clicked appel la fonction uf_clicked du moteur, comme je vous l'ai expliqué, et dans cette focntion uf_clicked, je fais un
//appel de l'évènement de déplacement des dddw dans le cadre d'un double écran this.Post Function uf_down_dddw_dbl_ecran(adw_parm)
Ce qui permet de sortir de l'event clicked et ensuite je peux faire tous les GetColumn() ou GetColumnName() que je veux...
C'est donc résolu...
Merci pour votre aide
Bye
Pascal
Dernière modification par Pilou007 (24-02-2010 14:26:56)
Hors ligne
please
Hors ligne