Le forum (ô combien francophone) des utilisateurs de Powerbuilder.
Bonjour à tous..
On a remarqué quelque chose de bizarre (à mon sens) sous pb, à savoir j'ai une variable d'instance dans une window, après un closewithreturn, la suite du script de la fenêtre est tout de meme effectuée et alors ma variable d'instance n'est plus accessible, alors que mes variables locales et globales le restent..
y a-t-il une explication logique?
merci
Hors ligne
c'est quoi ton script ?
montres, montres !
je veux reproduire le meme cas !
Hors ligne
dans le open j'initialise
If message.stringparm = 'menu' then ib_appel_menu = true else ib_appel_menu = false end if
ensuite sur le clicked du bouton ok
j'ai une condition si elle est vérifiée alors j'ai
if isnull(var) closewithreturn(parent,'1') end if // autre traitement..... //et if ib_appel_menu then // et ici la var d'instance ib_appel_menu n'est pas reconnu.. ca plante en runtime... // traitement end if
Hors ligne
oui, c'est logique !
apres un close, ta variable n'existe plus !
au pire des cas, il faut mettre
if isnull(var) closewithreturn(parent,'1') return end if
Hors ligne
ok mais pourquoi mes variables locales persistent?
Hors ligne
ton objet est fermé...
mais pas encore au niveau du script...
de toute facon, tu ne peux plus exploiter quoi que ce soit...
Hors ligne
En fait,
Tout ce qui est spécifique à l'objet n'est plus disponible, soit le cas des variables d'instances !
C'est bon à savoir !
Hors ligne
Salut,
En évènementielle, le script d'un event (ou d'une fonction) est "stocké" dans une file d'event windows (gestion FIFO. je ne parle pas des trigger et post à ce niveau). Lorsque ton script ferme simplement l'objet auquel il appartient, windows désinstancie l'objet (=> plus de variable d'instance, plus de référence aux controles de l'objet), mais ne passe pas à l'évènement suivant de sa file tant que le script actuel n'est pas fini, c'est à dire soit jusqu'au prochain return, soit jusqu'à la dernière instruction. Les variables locales restent accessibles (portée du script) et les variables globales également (portée application).
Hors ligne