Répétez apres moi :J'aime PBAdonf. J'aime PBAdonf. J'aime PBAdonf.

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 06-06-2007 07:18:03

thezerg  
Modérateur
Award: calimero
Lieu: Bordeaux
Date d'inscription: 12-09-2006
Messages: 966
Pépites: 22,449
Banque: 154,120,629,477,379,100

Est-ce logique?

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

 

#2 06-06-2007 08:06:42

pick ouic  
La bourse ou la vie ^^
Award: gearotter
Lieu: Massy-Verrières
Date d'inscription: 29-05-2006
Messages: 4659
Pépites: 945
Banque: 2,147,483,647
Site web

Re: Est-ce logique?

c'est quoi ton script ?
montres, montres !
je veux reproduire le meme cas !


Connaitre son ignorance est une grande part de la connaissance.
http://animegifs.free.fr/anime/mazinger/mazinger.gif

Hors ligne

 

#3 06-06-2007 08:31:48

thezerg  
Modérateur
Award: calimero
Lieu: Bordeaux
Date d'inscription: 12-09-2006
Messages: 966
Pépites: 22,449
Banque: 154,120,629,477,379,100

Re: Est-ce logique?

dans le open j'initialise

Code: pb

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

Code: pb

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

 

#4 06-06-2007 08:43:01

pick ouic  
La bourse ou la vie ^^
Award: gearotter
Lieu: Massy-Verrières
Date d'inscription: 29-05-2006
Messages: 4659
Pépites: 945
Banque: 2,147,483,647
Site web

Re: Est-ce logique?

oui, c'est logique !

apres un close, ta variable n'existe plus !

au pire des cas, il faut mettre

Code: pb

if isnull(var) 
   closewithreturn(parent,'1')  
   return
end if

Connaitre son ignorance est une grande part de la connaissance.
http://animegifs.free.fr/anime/mazinger/mazinger.gif

Hors ligne

 

#5 06-06-2007 10:06:11

thezerg  
Modérateur
Award: calimero
Lieu: Bordeaux
Date d'inscription: 12-09-2006
Messages: 966
Pépites: 22,449
Banque: 154,120,629,477,379,100

Re: Est-ce logique?

ok mais pourquoi mes variables locales persistent?

Hors ligne

 

#6 06-06-2007 10:09:52

pick ouic  
La bourse ou la vie ^^
Award: gearotter
Lieu: Massy-Verrières
Date d'inscription: 29-05-2006
Messages: 4659
Pépites: 945
Banque: 2,147,483,647
Site web

Re: Est-ce logique?

ton objet est fermé...
mais pas encore au niveau du script...

de toute facon, tu ne peux plus exploiter quoi que ce soit...


Connaitre son ignorance est une grande part de la connaissance.
http://animegifs.free.fr/anime/mazinger/mazinger.gif

Hors ligne

 

#7 06-06-2007 10:19:51

Doctor Z  
Moderador
Award: PanchoeNacho
Lieu: Vale Figueira (Lisbonne)
Date d'inscription: 30-05-2006
Messages: 756
Pépites: 1,003,082
Banque: 877,135,234,297,804

Re: Est-ce logique?

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 !


http://www.userbars.com/i/543606.gif
Olivença, l'oubliée
Si tu es alentejane, que Dieu te bénisses, si tu ne l'es pas, que Dieu te pardonnes.

Hors ligne

 

#8 06-06-2007 12:41:23

Chrnico  
N2I Power
Award: bf
Lieu: Vanves
Date d'inscription: 05-06-2007
Messages: 1206
Pépites: 12,884,901,943
Banque: 9,223,372,036,854,776,000
Site web

Re: Est-ce logique?

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).


Tu dois donc tu peux (Kant)

Tu peux donc tu dois (N2i)
www.n2i.fr

Hors ligne

 

Pied de page des forums

Propulsé par FluxBB 1.2.22