Le forum (ô combien francophone) des utilisateurs de Powerbuilder.
Bonjour à tous
Toujours et lorsque je fais regenerate d'un objet, dans le console de PB il
m'affiche un message d'erreur : PBL.pbl(w_my_window).w_my_window.wf_my_function:
Warging C0209: Function or event 'wf_my_function'must be declared before et can be compiled
Quelqu'un a rencontré ce genre de problème ?
C'est quoi le message d'erreur C0209 .
Bonne journée à tous
Dernière modification par mattdamon (07-08-2008 13:25:28)
Hors ligne
Bonjour matt,
As-tu vérifié que tu avais bien créé la fonction wf_my_function dans la fenêtre que tu appelles?
Il faut que tu vérifies aussi qu'il y a bien corrélation entre tous les arguments(leurs types, s'ils sont en référence ou non, leur ordre) déclarés au niveau de la fonction, et l'appel de celle-ci.
Hors ligne
Tu peux essayer de commenter tous les appels à cette fonction et vérifier que, sans l'appeler, le regenerate fonctionne. Si oui, tu peux ensuite décommenter les appels, et vérifier les arguments comme te le propose foon.
Hors ligne
Ce qu’est bizarre dans mon cas, c’est que je régénère l’objet w_my_window et la fonction wf_my_function(), elle est implémentée dans un autre objet w_my_window1.
Même, j’ai vérifié bien que je fais pas appel à wf_my_function() dans wf_my_function.
Mais la fonction wf_my_function() a été implémenté dans un autre objet w_my_window1 de la même PBL.
A noter : ma fonction wf_my_function() n’a pas des paramètres et me retourne integer.
Merci.
Hors ligne
Il n'y aurait pas une histoire d'héritage, par exemple entre tes deux fenêtres?
(Du style w_my_window hérite de w_my_window1)
Hors ligne
Malheureusement, il n' y a pas d'héritage entre les deux fenêtres
Hors ligne
Tu as regénéré w_my_window1 pour voir avant de regénérer w_my_window?
Hors ligne
j'ai régénéré mais le message d'erreur seulement dans w_my_window, et non pas dans w_my_window1
Dernière modification par mattdamon (07-08-2008 10:22:06)
Hors ligne
Ces deux fenêtres n'auraient pas un ancêtre commun, ou bien w_my_window n'aurait pas été créée par copier-coller du code source de w_my_window1 et modification de l'Edit Source par hasard? Tu as forcément une référence à wf_my_fonction dans w_my_window pour obtenir ce résultat.
Hors ligne
Dis moi, tu n'aurais pas créé w_my_window1 en faisant un copier coller de la syntaxe de w_my_window par hasard?
Si tu est en PB 9 et plus, peux-tu verifier la syntaxe des 2 stp (pour rappel: clique droit dans le System Tree>Edit Source).
As tu bien:
forward global type w_my_window1 window end type end forward ...
...attention, avec le 1!
Et verifie tant que tu y est que wf_my_function() est bien defini:
- d'abord le prototype
forward prototypes public function int wf_my_function () end prototypes
...et plus bas l'implementation...
public function int wf_my_function ();/// ... end function
Il me semble avoir eu ce genre d'erreur apres avoir maltraite des objets directement dans la syntaxe...
Hors ligne
C'est fait, vous avez raison tout les deux, parce que j'ai fait Edit Source sur la fanêtre w_my_window puis j'ai cherché la fonction wf_my_function() et j'ai la trouvé :
event wf_my_function; déclaration des variables Implémentation ... ... ... End event
et puisque c'est unitile donc j'ai fait comme suit :
/*
event wf_my_function;
déclaration des variables
Implémentation
...
...
...
End event
*/
j'ai la sauvegardé puis j'ai fait regenerate
et aprés j'ai cherché par Edit Source la fonction, mais elle n'y a pas, elle a été disparu
C'est bizarre, mais ça va aller comme même ...
Hors ligne
Ok,
Une déclaration d'événement effectuée avec un nommage de fonction... pas très beau
N'oublies pas le [RESOLU]
Hors ligne
foon a écrit:
Ok,
Une déclaration d'événement effectuée avec un nommage de fonction... pas très beau
N'oublies pas le [RESOLU]
C'est fait
Hors ligne
Hors ligne