Salut ;O) Tu dis "Dans ce cas tu crées une instance de Form vide "
(ou toujours d'une même classe de Form)
Pas du tout, j'instancie bien un Form existant. Place des objets sur ta form que tu appelleras via son nom et tu verras. Fais le test !
Hélas je ne peux pas. Pas de vb6 sous la main. Donc la méthode Add de la collection Forms crée une instance de feuille en fonction du nom de la classe passé en paramètre ? En lisant ton exemple, je pensais que c'était le nom que l'on donnait à l'instance créée. D'où ma confusion. C'est la technique dont j'ignorais l'existence sous vb6. Une création d'objet en fonction d'un type défini dynamiquement.
Un peu comme si on écrivait : Dim monType As String monType = "Integer" Dim maVariable As monType
Ou bien avec l'exemple des Forms, si j'ai dans mon projet une feuille "MaClasseForm", je peux en créer une instance en écrivant : Dim f as Form Set f = Forms.Add("maClasseForm")
C'est bien cela ? (Désolé de ne pouvoir tester tout seul !)
-- Fred http://www.cerbermail.com/?3kA6ftaCvT
dans : news:%2310JGdB3GHA.1268@TK2MSFTNGP02.phx.gbl,
Guy DETIENNE écrivait :
Salut ;O)
Tu dis
"Dans ce cas tu crées une instance de Form vide "
(ou toujours d'une même classe de Form)
Pas du tout, j'instancie bien un Form existant. Place des objets
sur ta form que tu appelleras via son nom et tu verras.
Fais le test !
Hélas je ne peux pas. Pas de vb6 sous la main.
Donc la méthode Add de la collection Forms crée une instance de feuille
en fonction du nom de la classe passé en paramètre ?
En lisant ton exemple, je pensais que c'était le nom que l'on donnait à
l'instance créée. D'où ma confusion.
C'est la technique dont j'ignorais l'existence sous vb6. Une création
d'objet en fonction d'un type défini dynamiquement.
Un peu comme si on écrivait :
Dim monType As String
monType = "Integer"
Dim maVariable As monType
Ou bien avec l'exemple des Forms, si j'ai dans mon projet une feuille
"MaClasseForm", je peux en créer une instance en écrivant :
Dim f as Form
Set f = Forms.Add("maClasseForm")
C'est bien cela ?
(Désolé de ne pouvoir tester tout seul !)
Salut ;O) Tu dis "Dans ce cas tu crées une instance de Form vide "
(ou toujours d'une même classe de Form)
Pas du tout, j'instancie bien un Form existant. Place des objets sur ta form que tu appelleras via son nom et tu verras. Fais le test !
Hélas je ne peux pas. Pas de vb6 sous la main. Donc la méthode Add de la collection Forms crée une instance de feuille en fonction du nom de la classe passé en paramètre ? En lisant ton exemple, je pensais que c'était le nom que l'on donnait à l'instance créée. D'où ma confusion. C'est la technique dont j'ignorais l'existence sous vb6. Une création d'objet en fonction d'un type défini dynamiquement.
Un peu comme si on écrivait : Dim monType As String monType = "Integer" Dim maVariable As monType
Ou bien avec l'exemple des Forms, si j'ai dans mon projet une feuille "MaClasseForm", je peux en créer une instance en écrivant : Dim f as Form Set f = Forms.Add("maClasseForm")
C'est bien cela ? (Désolé de ne pouvoir tester tout seul !)
-- Fred http://www.cerbermail.com/?3kA6ftaCvT
Fred
dans : news:, Guy DETIENNE écrivait :
Re ;O)
Re,
Et pour info, lorsque tu fais un "Load Form1", tu ne fais qu'instancier une classe de ta Form.
Oui, c'est d'ailleurs bien cette ambiguïté que je reproche à vb6.
-- Fred http://www.cerbermail.com/?3kA6ftaCvT
dans : news:OtJmHhB3GHA.4164@TK2MSFTNGP05.phx.gbl,
Guy DETIENNE écrivait :
Re ;O)
Re,
Et pour info, lorsque tu fais un "Load Form1", tu ne fais
qu'instancier une classe de ta Form.
Oui, c'est d'ailleurs bien cette ambiguïté que je reproche à vb6.
Et une petite procédure bien sympa à placer aussi dans Form1 ou dans un module
Public Sub LoadFormByName(ByVal strFormName As String)
Dim MyForm As Form
Set MyForm = Forms.Add(strFormName) MyForm.Show
End Sub
J'espère que cela répond à ton attente.
Guy
"jerome" a écrit dans le message de news: OhbiQc% > Bonjour j'essaie de récupérer un texte dans une fonction et de faire en > sorte que me soit retourné le nom du formulaire correspondant > > du style > > private sub formulaire(myForm as integer) as Form > ... chercher monTexte correspondant à monNumero > end sub > > et de récupérer cette valeur en tant que formulaire pour pouvoir ensuite > l'utiliser comme tel. > > Mais je n'y arrive pas. > > Merci > >
Oui.
Cela fonctionne très bien comme ça.
Merci beaucoup
"Guy DETIENNE" <gd@NOSPAM.tchao.be> wrote in message
news:uwNHThA3GHA.1548@TK2MSFTNGP02.phx.gbl...
Salut ;O)
Oui c'est possible !
Pour l'exemple, on créera 2 forms : Form1 et Form2
Form2 reste vide
Sur Form1 : un bouton Command1
On colle ceci dans le code du formulaire:
Et une petite procédure bien sympa à placer aussi dans Form1 ou dans un
module
Public Sub LoadFormByName(ByVal strFormName As String)
Dim MyForm As Form
Set MyForm = Forms.Add(strFormName)
MyForm.Show
End Sub
J'espère que cela répond à ton attente.
Guy
"jerome" <jerome@hh.fr> a écrit dans le message de news:
OhbiQc%232GHA.4632@TK2MSFTNGP03.phx.gbl...
> Bonjour j'essaie de récupérer un texte dans une fonction et de faire en
> sorte que me soit retourné le nom du formulaire correspondant
>
> du style
>
> private sub formulaire(myForm as integer) as Form
> ... chercher monTexte correspondant à monNumero
> end sub
>
> et de récupérer cette valeur en tant que formulaire pour pouvoir ensuite
> l'utiliser comme tel.
>
> Mais je n'y arrive pas.
>
> Merci
>
>
Et une petite procédure bien sympa à placer aussi dans Form1 ou dans un module
Public Sub LoadFormByName(ByVal strFormName As String)
Dim MyForm As Form
Set MyForm = Forms.Add(strFormName) MyForm.Show
End Sub
J'espère que cela répond à ton attente.
Guy
"jerome" a écrit dans le message de news: OhbiQc% > Bonjour j'essaie de récupérer un texte dans une fonction et de faire en > sorte que me soit retourné le nom du formulaire correspondant > > du style > > private sub formulaire(myForm as integer) as Form > ... chercher monTexte correspondant à monNumero > end sub > > et de récupérer cette valeur en tant que formulaire pour pouvoir ensuite > l'utiliser comme tel. > > Mais je n'y arrive pas. > > Merci > >
Guy DETIENNE
Salut ;O)
En effet, la méthode Add de la collection Forms est très ambigüe. Le fonctionnement est que lorsque l'on tente de créer une Form ayant le même nom qu'une existante, l'existante est dès lors instanciée...
Je ne vois pas d'autres explications.
Guy
"Fred" a écrit dans le message de news: en4to$
dans : news:, Guy DETIENNE écrivait :
Re ;O)
Re,
Et pour info, lorsque tu fais un "Load Form1", tu ne fais qu'instancier une classe de ta Form.
Oui, c'est d'ailleurs bien cette ambiguïté que je reproche à vb6.
-- Fred http://www.cerbermail.com/?3kA6ftaCvT
Salut ;O)
En effet, la méthode Add de la collection Forms est très ambigüe.
Le fonctionnement est que lorsque l'on tente de créer une Form ayant le même
nom qu'une existante, l'existante est dès lors instanciée...
Je ne vois pas d'autres explications.
Guy
"Fred" <foleide@libre.france> a écrit dans le message de news:
en4to$B3GHA.4312@TK2MSFTNGP02.phx.gbl...
dans : news:OtJmHhB3GHA.4164@TK2MSFTNGP05.phx.gbl,
Guy DETIENNE écrivait :
Re ;O)
Re,
Et pour info, lorsque tu fais un "Load Form1", tu ne fais
qu'instancier une classe de ta Form.
Oui, c'est d'ailleurs bien cette ambiguïté que je reproche à vb6.
En effet, la méthode Add de la collection Forms est très ambigüe. Le fonctionnement est que lorsque l'on tente de créer une Form ayant le même nom qu'une existante, l'existante est dès lors instanciée...
Je ne vois pas d'autres explications.
Guy
"Fred" a écrit dans le message de news: en4to$
dans : news:, Guy DETIENNE écrivait :
Re ;O)
Re,
Et pour info, lorsque tu fais un "Load Form1", tu ne fais qu'instancier une classe de ta Form.
Oui, c'est d'ailleurs bien cette ambiguïté que je reproche à vb6.
-- Fred http://www.cerbermail.com/?3kA6ftaCvT
Guy DETIENNE
Au plaisir...
Guy
"jerome" a écrit dans le message de news:
Oui.
Cela fonctionne très bien comme ça.
Merci beaucoup
"Guy DETIENNE" wrote in message news:
Salut ;O)
Oui c'est possible !
Pour l'exemple, on créera 2 forms : Form1 et Form2
Form2 reste vide Sur Form1 : un bouton Command1 On colle ceci dans le code du formulaire:
Et une petite procédure bien sympa à placer aussi dans Form1 ou dans un module
Public Sub LoadFormByName(ByVal strFormName As String)
Dim MyForm As Form
Set MyForm = Forms.Add(strFormName) MyForm.Show
End Sub
J'espère que cela répond à ton attente.
Guy
"jerome" a écrit dans le message de news: OhbiQc% > Bonjour j'essaie de récupérer un texte dans une fonction et de faire en > sorte que me soit retourné le nom du formulaire correspondant > > du style > > private sub formulaire(myForm as integer) as Form > ... chercher monTexte correspondant à monNumero > end sub > > et de récupérer cette valeur en tant que formulaire pour pouvoir > ensuite > l'utiliser comme tel. > > Mais je n'y arrive pas. > > Merci > >
Au plaisir...
Guy
"jerome" <jerome@hh.fr> a écrit dans le message de news:
OO0eOOI3GHA.324@TK2MSFTNGP05.phx.gbl...
Oui.
Cela fonctionne très bien comme ça.
Merci beaucoup
"Guy DETIENNE" <gd@NOSPAM.tchao.be> wrote in message
news:uwNHThA3GHA.1548@TK2MSFTNGP02.phx.gbl...
Salut ;O)
Oui c'est possible !
Pour l'exemple, on créera 2 forms : Form1 et Form2
Form2 reste vide
Sur Form1 : un bouton Command1
On colle ceci dans le code du formulaire:
Et une petite procédure bien sympa à placer aussi dans Form1 ou dans un
module
Public Sub LoadFormByName(ByVal strFormName As String)
Dim MyForm As Form
Set MyForm = Forms.Add(strFormName)
MyForm.Show
End Sub
J'espère que cela répond à ton attente.
Guy
"jerome" <jerome@hh.fr> a écrit dans le message de news:
OhbiQc%232GHA.4632@TK2MSFTNGP03.phx.gbl...
> Bonjour j'essaie de récupérer un texte dans une fonction et de faire en
> sorte que me soit retourné le nom du formulaire correspondant
>
> du style
>
> private sub formulaire(myForm as integer) as Form
> ... chercher monTexte correspondant à monNumero
> end sub
>
> et de récupérer cette valeur en tant que formulaire pour pouvoir
> ensuite
> l'utiliser comme tel.
>
> Mais je n'y arrive pas.
>
> Merci
>
>
Et une petite procédure bien sympa à placer aussi dans Form1 ou dans un module
Public Sub LoadFormByName(ByVal strFormName As String)
Dim MyForm As Form
Set MyForm = Forms.Add(strFormName) MyForm.Show
End Sub
J'espère que cela répond à ton attente.
Guy
"jerome" a écrit dans le message de news: OhbiQc% > Bonjour j'essaie de récupérer un texte dans une fonction et de faire en > sorte que me soit retourné le nom du formulaire correspondant > > du style > > private sub formulaire(myForm as integer) as Form > ... chercher monTexte correspondant à monNumero > end sub > > et de récupérer cette valeur en tant que formulaire pour pouvoir > ensuite > l'utiliser comme tel. > > Mais je n'y arrive pas. > > Merci > >
Fred
dans : news:, Guy DETIENNE écrivait :
Salut ;O)
Bonsoir,
En effet, la méthode Add de la collection Forms est très ambigüe.
Oui, c'est le moins qu'on puisse dire ! ;-) En fait je faisais allusion à cette possibilité d'utiliser le nom d'une form : - Soit comme type/classe dans Dim f As New MaForm ainsi que tu l'as rappelé. - Soit comme variable/instance dans MaForm.Caption = "Le titre" Je ne trouve pas cela très propre.
Le fonctionnement est que lorsque l'on tente de créer une Form ayant le même nom qu'une existante, l'existante est dès lors instanciée...
J'en suis encore épaté :-) Donc non seulement cela retrouve le type en fonction de son nom à l'exécution mais en plus cela ne recrée pas une nouvelle instance s'il en existe déjà une !
-- Fred http://www.cerbermail.com/?3kA6ftaCvT
dans : news:Ona7aeM3GHA.2152@TK2MSFTNGP06.phx.gbl,
Guy DETIENNE écrivait :
Salut ;O)
Bonsoir,
En effet, la méthode Add de la collection Forms est très ambigüe.
Oui, c'est le moins qu'on puisse dire ! ;-)
En fait je faisais allusion à cette possibilité d'utiliser le nom d'une
form :
- Soit comme type/classe dans
Dim f As New MaForm
ainsi que tu l'as rappelé.
- Soit comme variable/instance dans
MaForm.Caption = "Le titre"
Je ne trouve pas cela très propre.
Le fonctionnement est que lorsque l'on tente de créer une Form ayant
le même nom qu'une existante, l'existante est dès lors instanciée...
J'en suis encore épaté :-)
Donc non seulement cela retrouve le type en fonction de son nom à
l'exécution mais en plus cela ne recrée pas une nouvelle instance s'il
en existe déjà une !
En effet, la méthode Add de la collection Forms est très ambigüe.
Oui, c'est le moins qu'on puisse dire ! ;-) En fait je faisais allusion à cette possibilité d'utiliser le nom d'une form : - Soit comme type/classe dans Dim f As New MaForm ainsi que tu l'as rappelé. - Soit comme variable/instance dans MaForm.Caption = "Le titre" Je ne trouve pas cela très propre.
Le fonctionnement est que lorsque l'on tente de créer une Form ayant le même nom qu'une existante, l'existante est dès lors instanciée...
J'en suis encore épaté :-) Donc non seulement cela retrouve le type en fonction de son nom à l'exécution mais en plus cela ne recrée pas une nouvelle instance s'il en existe déjà une !
-- Fred http://www.cerbermail.com/?3kA6ftaCvT
Guy DETIENNE
On peut encore être épaté par VB... A vrai dire, je découvre encore parfois des subtilités insoupconnées...
Et VB est-il propre ou pas ? Y a début à l'horizon. Cela dépend en grande partie du programmeur, puis le langage en tant que tel.
Guy
"Fred" a écrit dans le message de news:
dans : news:, Guy DETIENNE écrivait :
Salut ;O)
Bonsoir,
En effet, la méthode Add de la collection Forms est très ambigüe.
Oui, c'est le moins qu'on puisse dire ! ;-) En fait je faisais allusion à cette possibilité d'utiliser le nom d'une form : - Soit comme type/classe dans Dim f As New MaForm ainsi que tu l'as rappelé. - Soit comme variable/instance dans MaForm.Caption = "Le titre" Je ne trouve pas cela très propre.
Le fonctionnement est que lorsque l'on tente de créer une Form ayant le même nom qu'une existante, l'existante est dès lors instanciée...
J'en suis encore épaté :-) Donc non seulement cela retrouve le type en fonction de son nom à l'exécution mais en plus cela ne recrée pas une nouvelle instance s'il en existe déjà une !
-- Fred http://www.cerbermail.com/?3kA6ftaCvT
On peut encore être épaté par VB...
A vrai dire, je découvre encore parfois des subtilités insoupconnées...
Et VB est-il propre ou pas ? Y a début à l'horizon. Cela dépend en grande
partie du programmeur, puis le langage en tant que tel.
Guy
"Fred" <foleide@libre.france> a écrit dans le message de news:
eaUYjAP3GHA.4312@TK2MSFTNGP02.phx.gbl...
dans : news:Ona7aeM3GHA.2152@TK2MSFTNGP06.phx.gbl,
Guy DETIENNE écrivait :
Salut ;O)
Bonsoir,
En effet, la méthode Add de la collection Forms est très ambigüe.
Oui, c'est le moins qu'on puisse dire ! ;-)
En fait je faisais allusion à cette possibilité d'utiliser le nom d'une
form :
- Soit comme type/classe dans
Dim f As New MaForm
ainsi que tu l'as rappelé.
- Soit comme variable/instance dans
MaForm.Caption = "Le titre"
Je ne trouve pas cela très propre.
Le fonctionnement est que lorsque l'on tente de créer une Form ayant
le même nom qu'une existante, l'existante est dès lors instanciée...
J'en suis encore épaté :-)
Donc non seulement cela retrouve le type en fonction de son nom à
l'exécution mais en plus cela ne recrée pas une nouvelle instance s'il en
existe déjà une !
On peut encore être épaté par VB... A vrai dire, je découvre encore parfois des subtilités insoupconnées...
Et VB est-il propre ou pas ? Y a début à l'horizon. Cela dépend en grande partie du programmeur, puis le langage en tant que tel.
Guy
"Fred" a écrit dans le message de news:
dans : news:, Guy DETIENNE écrivait :
Salut ;O)
Bonsoir,
En effet, la méthode Add de la collection Forms est très ambigüe.
Oui, c'est le moins qu'on puisse dire ! ;-) En fait je faisais allusion à cette possibilité d'utiliser le nom d'une form : - Soit comme type/classe dans Dim f As New MaForm ainsi que tu l'as rappelé. - Soit comme variable/instance dans MaForm.Caption = "Le titre" Je ne trouve pas cela très propre.
Le fonctionnement est que lorsque l'on tente de créer une Form ayant le même nom qu'une existante, l'existante est dès lors instanciée...
J'en suis encore épaté :-) Donc non seulement cela retrouve le type en fonction de son nom à l'exécution mais en plus cela ne recrée pas une nouvelle instance s'il en existe déjà une !
-- Fred http://www.cerbermail.com/?3kA6ftaCvT
jm
"Guy DETIENNE" wrote in message news:
On peut encore être épaté par VB... A vrai dire, je découvre encore parfois des subtilités insoupconnées...
Et VB est-il propre ou pas ? Y a début à l'horizon. Cela dépend en grande partie du programmeur, puis le langage en tant que tel.
Hello,
j'ai coutume de dire qu'il n'y a PAS de mauvais langages, seulement de mauvais programmeurs.
Je peux écrire du code super propre et lisible en FORTRAN (pas vraiment le mieux pour faire ça), de même qu'en se forçant un peu, on peut écrire du code immonde en ADA (faut se forcer, mais on peut).
-- jean-marc
"Guy DETIENNE" <gd@NOSPAM.tchao.be> wrote in message
news:uNaglTP3GHA.4648@TK2MSFTNGP04.phx.gbl...
On peut encore être épaté par VB...
A vrai dire, je découvre encore parfois des subtilités insoupconnées...
Et VB est-il propre ou pas ? Y a début à l'horizon. Cela dépend en
grande partie du programmeur, puis le langage en tant que tel.
Hello,
j'ai coutume de dire qu'il n'y a PAS de mauvais
langages, seulement de mauvais programmeurs.
Je peux écrire du code super propre et lisible
en FORTRAN (pas vraiment le mieux pour faire ça),
de même qu'en se forçant un peu, on peut écrire
du code immonde en ADA (faut se forcer, mais on peut).
On peut encore être épaté par VB... A vrai dire, je découvre encore parfois des subtilités insoupconnées...
Et VB est-il propre ou pas ? Y a début à l'horizon. Cela dépend en grande partie du programmeur, puis le langage en tant que tel.
Hello,
j'ai coutume de dire qu'il n'y a PAS de mauvais langages, seulement de mauvais programmeurs.
Je peux écrire du code super propre et lisible en FORTRAN (pas vraiment le mieux pour faire ça), de même qu'en se forçant un peu, on peut écrire du code immonde en ADA (faut se forcer, mais on peut).