J'ai encore un pb dans ma transition VB6 --> VB.NET 2005 (express)
En VB6, j'avais une classe Pompe avec des propriété et méthodes.
J'avais réussi à créer directement quelque chose qui ressemblait à un
tableau :
Public pompe(1 To 25) As New pompe
Je pouvais alors appeler, plus loin dans mon programme, pompe(1).Allumer par
exemple.
Je n'arrive pas à reproduire cela en VB.NET :
Si je mets Public pompe(0 To 25) As New pompe, j'ai une erreur d'indiquant
"Arrays cannot be declared with 'New' "
et je n'arrive pas à me sortir du problème.
C'était bien pratique !
Et en faisant : Public pompes() As Pompe pompes = new Pompe(25) {} ?
Patrice a écrit :
Le plus simple est de faire un MonTableau(i)=New MaClasse avant d'utiliser l'objet.
Contrairement à VB6, le New n'est pas implanté en VB.NET comme voulant dire "insérer un test avant chaque appel à l'objet et le créer si il est nothing" mais appelle automatiquement au démarrage, le code créant explicitement l'objet.
Donc à mon avis impossible d'initialiser à la déclaration tous les éléments d'un tableau (peut-être en 2.0 ?)
Et en faisant :
Public pompes() As Pompe
pompes = new Pompe(25) {} ?
Patrice a écrit :
Le plus simple est de faire un MonTableau(i)=New MaClasse avant d'utiliser
l'objet.
Contrairement à VB6, le New n'est pas implanté en VB.NET comme voulant dire
"insérer un test avant chaque appel à l'objet et le créer si il est nothing"
mais appelle automatiquement au démarrage, le code créant explicitement
l'objet.
Donc à mon avis impossible d'initialiser à la déclaration tous les éléments
d'un tableau (peut-être en 2.0 ?)
Et en faisant : Public pompes() As Pompe pompes = new Pompe(25) {} ?
Patrice a écrit :
Le plus simple est de faire un MonTableau(i)=New MaClasse avant d'utiliser l'objet.
Contrairement à VB6, le New n'est pas implanté en VB.NET comme voulant dire "insérer un test avant chaque appel à l'objet et le créer si il est nothing" mais appelle automatiquement au démarrage, le code créant explicitement l'objet.
Donc à mon avis impossible d'initialiser à la déclaration tous les éléments d'un tableau (peut-être en 2.0 ?)
Séb
"Olivier C." a écrit dans le message de news: %23EvozEv$
Et en faisant : Public pompes() As Pompe pompes = new Pompe(25) {} ?
Ah ben là, j'ai directement un liseré bleu sous le 1er "pompes" de la ligne 2 : declaration expected.
Séb
"Olivier C." <OlivierC@discussions.microsoft.com> a écrit dans le message de
news: %23EvozEv$FHA.740@TK2MSFTNGP12.phx.gbl...
Et en faisant :
Public pompes() As Pompe
pompes = new Pompe(25) {} ?
Ah ben là, j'ai directement un liseré bleu sous le 1er "pompes" de la ligne
2 : declaration expected.
"Olivier C." a écrit dans le message de news: %23EvozEv$
Et en faisant : Public pompes() As Pompe pompes = new Pompe(25) {} ?
Ah ben là, j'ai directement un liseré bleu sous le 1er "pompes" de la ligne 2 : declaration expected.
Séb
Patrice
Non plus, le problème étzant qu'il faut initialiser le tableau mais aussi chacune des cellules de ce tableau. Il suffit de le faire individuellement avant la première utilisation d'une cellule... (comme en VB6 lorsque la déclaration n'utilise pas new).
-- Patrice
"Séb" a écrit dans le message de news:e7hC8Gw$
"Olivier C." a écrit dans le message
de
news: %23EvozEv$ > Et en faisant : > Public pompes() As Pompe > pompes = new Pompe(25) {} ?
Ah ben là, j'ai directement un liseré bleu sous le 1er "pompes" de la
ligne
2 : declaration expected.
Séb
Non plus, le problème étzant qu'il faut initialiser le tableau mais aussi
chacune des cellules de ce tableau. Il suffit de le faire individuellement
avant la première utilisation d'une cellule... (comme en VB6 lorsque la
déclaration n'utilise pas new).
--
Patrice
"Séb" <adresse2@yahoo.fr> a écrit dans le message de
news:e7hC8Gw$FHA.2708@TK2MSFTNGP12.phx.gbl...
"Olivier C." <OlivierC@discussions.microsoft.com> a écrit dans le message
de
news: %23EvozEv$FHA.740@TK2MSFTNGP12.phx.gbl...
> Et en faisant :
> Public pompes() As Pompe
> pompes = new Pompe(25) {} ?
Ah ben là, j'ai directement un liseré bleu sous le 1er "pompes" de la
Non plus, le problème étzant qu'il faut initialiser le tableau mais aussi chacune des cellules de ce tableau. Il suffit de le faire individuellement avant la première utilisation d'une cellule... (comme en VB6 lorsque la déclaration n'utilise pas new).
-- Patrice
"Séb" a écrit dans le message de news:e7hC8Gw$
"Olivier C." a écrit dans le message
de
news: %23EvozEv$ > Et en faisant : > Public pompes() As Pompe > pompes = new Pompe(25) {} ?
Ah ben là, j'ai directement un liseré bleu sous le 1er "pompes" de la
ligne
2 : declaration expected.
Séb
Séb
"Patrice" a écrit dans le message de news: uLUqRG8$
Non plus, le problème étzant qu'il faut initialiser le tableau mais aussi chacune des cellules de ce tableau. Il suffit de le faire individuellement avant la première utilisation d'une cellule... (comme en VB6 lorsque la déclaration n'utilise pas new).
-- Patrice
Bonjour,
J'ai failli vous envoyer un nouveau message vous demandant de préciser, et je me suis souvenu de cette déclaration en 2 temps que je n'ai jamais utilisé, sous VB6 :
Je résume donc, si ça peut intéresser quelqu'un :
Dans mon module de délaration : Public Pompes(20) as Pompe 'Pompe est le nom de ma Classe
Dans le Form_Load : For i = 1 to 20 Pompes(i) = New Pompe Next i
Et là, sans souci, je peux utiliser Pompes(4).NumSortie = 75 par exemple.
C'est une solution qui a l'air de fonctionner, il y en a probablement d'autre. Je trouvais percsonnellement la méthode VB6 plus simple.
Merci beaucoup pour tous les conseils reçus, voilà une belle épine en moins...
Sébastien
"Patrice" <nobody@nowhere.com> a écrit dans le message de news:
uLUqRG8$FHA.1312@TK2MSFTNGP09.phx.gbl...
Non plus, le problème étzant qu'il faut initialiser le tableau mais aussi
chacune des cellules de ce tableau. Il suffit de le faire individuellement
avant la première utilisation d'une cellule... (comme en VB6 lorsque la
déclaration n'utilise pas new).
--
Patrice
Bonjour,
J'ai failli vous envoyer un nouveau message vous demandant de préciser, et
je me suis souvenu de cette déclaration en 2 temps que je n'ai jamais
utilisé, sous VB6 :
Je résume donc, si ça peut intéresser quelqu'un :
Dans mon module de délaration :
Public Pompes(20) as Pompe 'Pompe est le nom de ma Classe
Dans le Form_Load :
For i = 1 to 20
Pompes(i) = New Pompe
Next i
Et là, sans souci, je peux utiliser Pompes(4).NumSortie = 75 par exemple.
C'est une solution qui a l'air de fonctionner, il y en a probablement
d'autre.
Je trouvais percsonnellement la méthode VB6 plus simple.
Merci beaucoup pour tous les conseils reçus, voilà une belle épine en
moins...
"Patrice" a écrit dans le message de news: uLUqRG8$
Non plus, le problème étzant qu'il faut initialiser le tableau mais aussi chacune des cellules de ce tableau. Il suffit de le faire individuellement avant la première utilisation d'une cellule... (comme en VB6 lorsque la déclaration n'utilise pas new).
-- Patrice
Bonjour,
J'ai failli vous envoyer un nouveau message vous demandant de préciser, et je me suis souvenu de cette déclaration en 2 temps que je n'ai jamais utilisé, sous VB6 :
Je résume donc, si ça peut intéresser quelqu'un :
Dans mon module de délaration : Public Pompes(20) as Pompe 'Pompe est le nom de ma Classe
Dans le Form_Load : For i = 1 to 20 Pompes(i) = New Pompe Next i
Et là, sans souci, je peux utiliser Pompes(4).NumSortie = 75 par exemple.
C'est une solution qui a l'air de fonctionner, il y en a probablement d'autre. Je trouvais percsonnellement la méthode VB6 plus simple.
Merci beaucoup pour tous les conseils reçus, voilà une belle épine en moins...