OVH Cloud OVH Cloud

passer des parmètres entre forms

12 réponses
Avatar
thierry
Hello, j'ouvrve des forms, à partir d'autre forms

load form_X
form_X.show


par contre, je voudrais passer des paramètres entre ces forms.
Actuellement, j'ai déclaré des varibles globales au projet, mais cela me
chagrine mon moi inconscient :)

Sauriez vous comment faire?


cdt

Thierry

10 réponses

1 2
Avatar
LE TROLL
Salut, outre le chagrin de ton ego, une variable "public" est très
appropriée pour passer des params, car faire à la place un module, ça
complique à mon sens la lisibilité, moins il y en a, mieux on le lit :o)
---------

"thierry" a écrit dans le message de news:


Hello, j'ouvrve des forms, à partir d'autre forms

load form_X
form_X.show


par contre, je voudrais passer des paramètres entre ces forms.
Actuellement, j'ai déclaré des varibles globales au projet, mais cela me
chagrine mon moi inconscient :)

Sauriez vous comment faire?


cdt

Thierry


Avatar
thierry
In article <41aee5cc$0$30402$, "christophe-
pasde<>" <"christophe-pasde<>"@wanadoo.fr> says...
Bonjour

Est si tu ajoutais de nouvelle propriété à ta form ?

Si MyVar est une de tes variables globales

Tu la supprimes
dans ta form tu déclare

Private mMyvar

Public Property Get Myvar() As Variant

Myvar = mMyvar

End Property

Public Property Let Myvar(ByVal Myvar As Variant)

mMyvar = Myvar

End Property

et tu initialises la valeur par défaut sur Load de form.

Christophe




thierry a écrit :

> Hello, j'ouvrve des forms, à partir d'autre forms
>
> load form_X
> form_X.show
>
>
> par contre, je voudrais passer des paramètres entre ces forms.
> Actuellement, j'ai déclaré des varibles globales au projet, mais cela me
> chagrine mon moi inconscient :)
>
> Sauriez vous comment faire?
>
>
> cdt
>
> Thierry



un petit peu compliqué pour le débutant que je suis, mais cela semble
tentants.
Merci beaucoup, je me penche sur ceci
Avatar
thierry
In article , "LE TROLL" <le
says...
Salut, outre le chagrin de ton ego, une variable "public" est très
appropriée pour passer des params, car faire à la place un module, ça
complique à mon sens la lisibilité, moins il y en a, mieux on le lit :o)
---------

"thierry" a écrit dans le message de news:

>
> Hello, j'ouvrve des forms, à partir d'autre forms
>
> load form_X
> form_X.show
>
>
> par contre, je voudrais passer des paramètres entre ces forms.
> Actuellement, j'ai déclaré des varibles globales au projet, mais cela me
> chagrine mon moi inconscient :)
>
> Sauriez vous comment faire?
>
>
> cdt
>
> Thierry





sans doute, mais de la vieille école dont je viens, on évite au maximum
les variables public ou globales.
Avatar
christophe-pasde
Bonjour

Est si tu ajoutais de nouvelle propriété à ta form ?

Si MyVar est une de tes variables globales

Tu la supprimes
dans ta form tu déclare

Private mMyvar

Public Property Get Myvar() As Variant

Myvar = mMyvar

End Property

Public Property Let Myvar(ByVal Myvar As Variant)

mMyvar = Myvar

End Property

et tu initialises la valeur par défaut sur Load de form.

Christophe




thierry a écrit :

Hello, j'ouvrve des forms, à partir d'autre forms

load form_X
form_X.show


par contre, je voudrais passer des paramètres entre ces forms.
Actuellement, j'ai déclaré des varibles globales au projet, mais cela me
chagrine mon moi inconscient :)

Sauriez vous comment faire?


cdt

Thierry


Avatar
Patrice Henrio
Salut
Etant d'une école encore plus ancienne, à l'époque où toutes les variables
étaient globales et publiques, j'utilise (si nécessaire) des variables
globales si je n'ai pas de possibilité de passer des paramètres.
Pour moi, une variable globale c'est une variable visible de l'ensemble du
projet et donc des objets composant le projet, des commentaires judicieux
permettent de s'y retrouver.
Maintenant la solution d'ajouter des propriétés me parait effectivement très
attrayante mais n'empêche que la valeur d'initialisation de cette propriété,
il faut bien la prendre quelque part et pourquoi pas dans une variable
globale ?



"thierry" a écrit dans le message de news:

In article <41aee5cc$0$30402$, "christophe-
pasde<>" <"christophe-pasde<>"@wanadoo.fr> says...
Bonjour

Est si tu ajoutais de nouvelle propriété à ta form ?

Si MyVar est une de tes variables globales

Tu la supprimes
dans ta form tu déclare

Private mMyvar

Public Property Get Myvar() As Variant

Myvar = mMyvar

End Property

Public Property Let Myvar(ByVal Myvar As Variant)

mMyvar = Myvar

End Property

et tu initialises la valeur par défaut sur Load de form.

Christophe




thierry a écrit :

> Hello, j'ouvrve des forms, à partir d'autre forms
>
> load form_X
> form_X.show
>
>
> par contre, je voudrais passer des paramètres entre ces forms.
> Actuellement, j'ai déclaré des varibles globales au projet, mais cela
> me
> chagrine mon moi inconscient :)
>
> Sauriez vous comment faire?
>
>
> cdt
>
> Thierry



un petit peu compliqué pour le débutant que je suis, mais cela semble
tentants.
Merci beaucoup, je me penche sur ceci


Avatar
ng
Salut,

Déclares une property/variables/fonction publique à ta form :


'//exemple, ds ta form :
Private m_MaVar1 As MonType
Public MaVar2 As MonType

Public Property Get MaProp() As MonType
MaProp = m_MaVar1
End Property

Public Property Let MaProp(ByVal vNewValue As MonType)
m_MaVar1 = vNewValue
End Property

'//ensuite pr l'appel:

Call Load(MaForm)
'//avec la property
MaForm.MaProp = valeur
'//avec la var publique
MaForm.MaVar2 = valeur
Call MaForm.Show()

--
Nicolas G.
FAQ VB : http://faq.vb.free.fr
API Guide : http://www.allapi.net
Google Groups : http://groups.google.fr/
MZ-Tools : http://www.mztools.com/

thierry wrote:
Hello, j'ouvrve des forms, à partir d'autre forms

load form_X
form_X.show


par contre, je voudrais passer des paramètres entre ces forms.
Actuellement, j'ai déclaré des varibles globales au projet, mais cela
me chagrine mon moi inconscient :)

Sauriez vous comment faire?


cdt

Thierry


Avatar
christophe-pasde
> il faut bien la prendre quelque part et pourquoi pas dans une variable


> globale ?

C'est là que les réflexes de la vieille école, dite "séquentielle", sont
malvenus.
La valeur par défaut (qui porte bien son nom), est propre à la feuille
et a sa fonction. (encapsulation de mMyVar).

Admettons que cette propriété soit une couleur, ben tu la fixes à Noir
au load de la feuille.(ou ce que tu veux)
Si c'est une variable numérique ça peut-être zéro
Si c'est un objet c'est une instance de la classe initialisée avec ses
propres valeurs par défaut

Une variable globale qui serait une valeur par défaut d'une propriété de
feuille, implique une variable globale par feuille ( là en terme de
vieille école c'est de la mémoire utilisée pour rien, quand tu n'as pas
besoin de la valeur de myvar), ou que chaque feuille à la même
propriété, dans ce cas il vaut mieux créer une feuille de
base,comprenant la propriété, qui servira de modele.

Christophe


Patrice Henrio a écrit :

Salut
Etant d'une école encore plus ancienne, à l'époque où toutes les variables
étaient globales et publiques, j'utilise (si nécessaire) des variables
globales si je n'ai pas de possibilité de passer des paramètres.
Pour moi, une variable globale c'est une variable visible de l'ensemble du
projet et donc des objets composant le projet, des commentaires judicieux
permettent de s'y retrouver.
Maintenant la solution d'ajouter des propriétés me parait effectivement très
attrayante mais n'empêche que la valeur d'initialisation de cette propriété,






"thierry" a écrit dans le message de news:


In article <41aee5cc$0$30402$, "christophe-
pasde<>" <"christophe-pasde<>"@wanadoo.fr> says...

Bonjour

Est si tu ajoutais de nouvelle propriété à ta form ?

Si MyVar est une de tes variables globales

Tu la supprimes
dans ta form tu déclare

Private mMyvar

Public Property Get Myvar() As Variant

Myvar = mMyvar

End Property

Public Property Let Myvar(ByVal Myvar As Variant)

mMyvar = Myvar

End Property

et tu initialises la valeur par défaut sur Load de form.

Christophe




thierry a écrit :


Hello, j'ouvrve des forms, à partir d'autre forms

load form_X
form_X.show


par contre, je voudrais passer des paramètres entre ces forms.
Actuellement, j'ai déclaré des varibles globales au projet, mais cela
me
chagrine mon moi inconscient :)

Sauriez vous comment faire?


cdt

Thierry





un petit peu compliqué pour le débutant que je suis, mais cela semble
tentants.
Merci beaucoup, je me penche sur ceci







Avatar
Pascal B.
Voici ma technique (Exemple):

'//Dans la form (MaForm)
Dim OK as Boolean

Public Function ShowChange(Var1 as string, Var2 as string) as Boolean
Ok = False
Text1 = Var1
Text2 = Var2
Show 1
If OK then
Var1 = Text1
Var2 = Text2
End If
ShowChange = OK
Unload Me
End Fuction

Private Sub CmdOK_Click()
Ok = True
Hide
End If

Private Sub CmdCancel_Click
OK = False
Hide
End If

'//A un endroit quelconque du programme:
Dim Res as Boolean
Dim MonText1 as string, MonText2 as String

Res = MaForm.ShowChange(MonText1, MonText2)
If Res Then
MsgBox "Les variables on été modifiées !"
Else
MsgBox "On a cliqué sur Cancel !"
End If


"thierry" wrote in message news:
|
| Hello, j'ouvrve des forms, à partir d'autre forms
|
| load form_X
| form_X.show
|
|
| par contre, je voudrais passer des paramètres entre ces forms.
| Actuellement, j'ai déclaré des varibles globales au projet, mais cela me
| chagrine mon moi inconscient :)
|
| Sauriez vous comment faire?
|
|
| cdt
|
| Thierry
Avatar
Patrice Henrio
OK
On a déjà une discussion sur le sujet et j'avais déjà admis qu'effectivement
utiliser les propriétés évitaient d'avoir à reprendre l'ensemble du code
avec en plus des variables à modifier.

"christophe-pasde<> @wanadoo.fr>" <"christophe-pasde<> a écrit dans le
message de news: 41aef91e$0$11774$
> il faut bien la prendre quelque part et pourquoi pas dans une variable
> globale ?

C'est là que les réflexes de la vieille école, dite "séquentielle", sont
malvenus.
La valeur par défaut (qui porte bien son nom), est propre à la feuille et
a sa fonction. (encapsulation de mMyVar).

Admettons que cette propriété soit une couleur, ben tu la fixes à Noir au
load de la feuille.(ou ce que tu veux)
Si c'est une variable numérique ça peut-être zéro
Si c'est un objet c'est une instance de la classe initialisée avec ses
propres valeurs par défaut

Une variable globale qui serait une valeur par défaut d'une propriété de
feuille, implique une variable globale par feuille ( là en terme de
vieille école c'est de la mémoire utilisée pour rien, quand tu n'as pas
besoin de la valeur de myvar), ou que chaque feuille à la même propriété,
dans ce cas il vaut mieux créer une feuille de base,comprenant la
propriété, qui servira de modele.

Christophe


Patrice Henrio a écrit :

Salut
Etant d'une école encore plus ancienne, à l'époque où toutes les
variables étaient globales et publiques, j'utilise (si nécessaire) des
variables globales si je n'ai pas de possibilité de passer des
paramètres.
Pour moi, une variable globale c'est une variable visible de l'ensemble
du projet et donc des objets composant le projet, des commentaires
judicieux permettent de s'y retrouver.
Maintenant la solution d'ajouter des propriétés me parait effectivement
très attrayante mais n'empêche que la valeur d'initialisation de cette
propriété,






"thierry" a écrit dans le message de news:


In article <41aee5cc$0$30402$, "christophe-
pasde<>" <"christophe-pasde<>"@wanadoo.fr> says...

Bonjour

Est si tu ajoutais de nouvelle propriété à ta form ?

Si MyVar est une de tes variables globales

Tu la supprimes
dans ta form tu déclare

Private mMyvar

Public Property Get Myvar() As Variant

Myvar = mMyvar

End Property

Public Property Let Myvar(ByVal Myvar As Variant)

mMyvar = Myvar

End Property

et tu initialises la valeur par défaut sur Load de form.

Christophe




thierry a écrit :


Hello, j'ouvrve des forms, à partir d'autre forms

load form_X
form_X.show


par contre, je voudrais passer des paramètres entre ces forms.
Actuellement, j'ai déclaré des varibles globales au projet, mais cela
me
chagrine mon moi inconscient :)

Sauriez vous comment faire?


cdt

Thierry





un petit peu compliqué pour le débutant que je suis, mais cela semble
tentants.
Merci beaucoup, je me penche sur ceci








Avatar
Pierre Alexis [MVP]
Salut Thierry,

Tu as écrit :

sans doute, mais de la vieille école dont je viens, on évite au maximum
les variables public ou globales.



Tout à fait. Pourquoi ne pas rajouter une propriété à ton form alors ?

--
Pierre ALEXIS - MVP Visual Basic Classique
Courriel & messenger :
FAQ Visual Basic : http://faq.vb.free.fr/
1 2