nguibout
Messages postés12Date d'inscriptionmercredi 5 février 2003StatutMembreDernière intervention27 avril 2004
-
14 avril 2004 à 13:03
nguibout
Messages postés12Date d'inscriptionmercredi 5 février 2003StatutMembreDernière intervention27 avril 2004
-
15 avril 2004 à 10:37
Hello,
j'ai besoin de votre aide :
J'ai deux formulaires FORM1 et FORM2 .
Lorsque je clique sur un bouton de FORM1, j'ouvre le FORM2.
Le but est que l'utilisateur fasse des traitements dans FORM2 et lorsqu'il ferme FORM2 j'aimerais recuperer depuis FORM1 certaines variables du FORM2 qui viens de se ferme.
Comment puis je faire ?
Si mon probleme n'est pas clair dite le moi.
Mindiell
Messages postés558Date d'inscriptionjeudi 25 juillet 2002StatutMembreDernière intervention 5 septembre 20071 14 avril 2004 à 13:24
Ce n'est pas la meilleure manière je trouve.
Depuis Form1 pour acceder a n'importe quel objet de form2, il suffit d'appeler Form2.NomObjet.
Attention, ca ne marche que pour les objets de Form2 comme un textbox par exemple. Pour les variables internes (genre Dim i as integer) a Form2, la il faudra bien une variable globale...
Finalement, bill gates avait pas completement tort :)
nguibout
Messages postés12Date d'inscriptionmercredi 5 février 2003StatutMembreDernière intervention27 avril 2004 14 avril 2004 à 13:37
OK Neo.balastik ,
mais c'est ce que je viens de faire, j'ai une variable globale et dans FORM1 je fais :
Dim frm As form2
frm = New form2
frm.Show()
messagebox.show(frm.mavariableglobale)
Le message box est vide parce que l'utilisateur n'a pas eu le temps de faire son traitementavec FORM2. En fait il faudrait faire le messagebox uniquement lorsque l'utilisateur ferme FORM2
Neo.balastik
Messages postés796Date d'inscriptionjeudi 17 mai 2001StatutMembreDernière intervention 5 mai 20097 14 avril 2004 à 18:41
Pour Mindiell ,
Tu te trompes sur toute la ligne !!! Une variable locale à une form et déclarée en tant que Public est visible dans tout le projet !!! Faut-il encore que le formulaire soit evidemment chargé.
Si tu as 2 forms : Form1 et Form2
Dans Form2, tu déclares en en-tête ceci :
Public MaVariable as String
Tu ouvres Form2 a partir du Form1, et si dans Form1 tu fais ceci :
Msgbox Form2.Mavariable
Le contenu sera affiché.
Attention avant de t'avancer dans de telles affirmations.
crenaud76
Messages postés4172Date d'inscriptionmercredi 30 juillet 2003StatutMembreDernière intervention 9 juin 200628 15 avril 2004 à 00:55
A noter que si form2 est déchargée au moment de l'appel à form2.MaVariable depuis el code de Form1, VB recharge Form2, pour accéder à MaVariable, et elle est donc toujours accessible, meme si Form2 a été déchargée entre temps, MAIS, car il y a un MAIS, comme Form2 est RECHARGEE, MaVariable prend sa valeur par défaut, soit une chaine vide pour une variable de type String !!
crenaud76
Messages postés4172Date d'inscriptionmercredi 30 juillet 2003StatutMembreDernière intervention 9 juin 200628 15 avril 2004 à 00:58
Mais il existe une solution au pb avec des variables globales à Form2 :
Dans le Query_unload de Form2, mettre cancel à True si l'origine du déchargement n'est pas le code, et masquer form2
Dans form1, lire les valeurs des variables globales sur Form2, puis décharger Form2.
C'est chiant a coder, c'est pas propre, et quitte à déclarer des var globales, autant les mettre dans un module standard, ce sera bien plus simple
nguibout
Messages postés12Date d'inscriptionmercredi 5 février 2003StatutMembreDernière intervention27 avril 2004 15 avril 2004 à 10:37
Pour Neo.balastik
Tu dit :
Si tu as 2 forms : Form1 et Form2
Dans Form2, tu déclares en en-tête ceci :
Public MaVariable as String
Tu ouvres Form2 a partir du Form1, et si dans Form1 tu fais ceci :
Msgbox Form2.Mavariable
Le contenu sera affiché.
Bien sur le contenu sera affiché mais comment attendre que cette variable soit valuée.
Parce que dans le code je fais un show du FORM2 et ensuite j'affiche la variable mais le probleme c'est qu'il ouvre le FORM2 et directement apres il m'affiche la variable. Alors qu'il faudrait attendre que form2 se referme.
Peut etre existe il des fonction du genre ShellWait, qui executent un code et attendent la fin du code pour passer á l'instruction suivante.