Bonjour les lecteurs,
VB6
Voila mon petit soucis :
J'ai créer un module de classe que j'ai appelé "Machine".
Dans le module du formulaire, je déclare une variable array "globale"de
cette façon :
Dim Machines(1) As New Machine
Ensuite, sur une sélection dans un menu, je veux ajouter une entrée.
Donc je fais :
ReDim Preserve Machines(UBound(Machines) + 1)
Et là, elle me mets :
Erreur de compillation. Tableau déjà dimentionné.
Où est ce que je commets une erreur ? J'avoue que je ne vois pas ce qui
cloche :/
Si quelqu'un pouvait me sortir cette épine du pied, il aurai droit à
toute ma reconnaissance
Merci pour vos reponses
--
____
( O | O )
--
_oooO_ JLuc _Oooo_
O-O
Bonjour les lecteurs,
VB6
Voila mon petit soucis :
J'ai créer un module de classe que j'ai appelé "Machine".
Dans le module du formulaire, je déclare une variable array "globale"de
cette façon :
Dim Machines(1) As New Machine
Ensuite, sur une sélection dans un menu, je veux ajouter une entrée.
Donc je fais :
ReDim Preserve Machines(UBound(Machines) + 1)
Et là, elle me mets :
Erreur de compillation. Tableau déjà dimentionné.
Où est ce que je commets une erreur ? J'avoue que je ne vois pas ce qui
cloche :/
Si quelqu'un pouvait me sortir cette épine du pied, il aurai droit à
toute ma reconnaissance
Merci pour vos reponses
--
____
( O | O )
--
_oooO_ JLuc _Oooo_
O-O
Bonjour les lecteurs,
VB6
Voila mon petit soucis :
J'ai créer un module de classe que j'ai appelé "Machine".
Dans le module du formulaire, je déclare une variable array "globale"de
cette façon :
Dim Machines(1) As New Machine
Ensuite, sur une sélection dans un menu, je veux ajouter une entrée.
Donc je fais :
ReDim Preserve Machines(UBound(Machines) + 1)
Et là, elle me mets :
Erreur de compillation. Tableau déjà dimentionné.
Où est ce que je commets une erreur ? J'avoue que je ne vois pas ce qui
cloche :/
Si quelqu'un pouvait me sortir cette épine du pied, il aurai droit à
toute ma reconnaissance
Merci pour vos reponses
--
____
( O | O )
--
_oooO_ JLuc _Oooo_
O-O
Bonjour les lecteurs,
VB6
Voila mon petit soucis :
J'ai créer un module de classe que j'ai appelé "Machine".
Dans le module du formulaire, je déclare une variable array "globale"de
cette façon :
Dim Machines(1) As New Machine
Ensuite, sur une sélection dans un menu, je veux ajouter une entrée. Donc
je fais :
ReDim Preserve Machines(UBound(Machines) + 1)
Et là, elle me mets :
Erreur de compillation. Tableau déjà dimentionné.
Où est ce que je commets une erreur ? J'avoue que je ne vois pas ce qui
cloche :/
Si quelqu'un pouvait me sortir cette épine du pied, il aurai droit à toute
ma reconnaissance
Bonjour les lecteurs,
VB6
Voila mon petit soucis :
J'ai créer un module de classe que j'ai appelé "Machine".
Dans le module du formulaire, je déclare une variable array "globale"de
cette façon :
Dim Machines(1) As New Machine
Ensuite, sur une sélection dans un menu, je veux ajouter une entrée. Donc
je fais :
ReDim Preserve Machines(UBound(Machines) + 1)
Et là, elle me mets :
Erreur de compillation. Tableau déjà dimentionné.
Où est ce que je commets une erreur ? J'avoue que je ne vois pas ce qui
cloche :/
Si quelqu'un pouvait me sortir cette épine du pied, il aurai droit à toute
ma reconnaissance
Bonjour les lecteurs,
VB6
Voila mon petit soucis :
J'ai créer un module de classe que j'ai appelé "Machine".
Dans le module du formulaire, je déclare une variable array "globale"de
cette façon :
Dim Machines(1) As New Machine
Ensuite, sur une sélection dans un menu, je veux ajouter une entrée. Donc
je fais :
ReDim Preserve Machines(UBound(Machines) + 1)
Et là, elle me mets :
Erreur de compillation. Tableau déjà dimentionné.
Où est ce que je commets une erreur ? J'avoue que je ne vois pas ce qui
cloche :/
Si quelqu'un pouvait me sortir cette épine du pied, il aurai droit à toute
ma reconnaissance
Oui c'est normal,
dans ta déclaration il ne faut pas dimensionner ton tableau : pas de chiffre
entre les parenthèses
Dim Machines() As New Machine
dans topn premier chargement tu peux alors mettre ensuite un dimensionnement
reDim Machines(1)
et ensuite tu peux redimensionner 'à volonté' ton tableau
Driss
"JLuc" a écrit dans le message de
news:Bonjour les lecteurs,
VB6
Voila mon petit soucis :
J'ai créer un module de classe que j'ai appelé "Machine".
Dans le module du formulaire, je déclare une variable array "globale"de
cette façon :
Dim Machines(1) As New Machine
Ensuite, sur une sélection dans un menu, je veux ajouter une entrée.
Donc je fais :
ReDim Preserve Machines(UBound(Machines) + 1)
Et là, elle me mets :
Erreur de compillation. Tableau déjà dimentionné.
Où est ce que je commets une erreur ? J'avoue que je ne vois pas ce qui
cloche :/
Si quelqu'un pouvait me sortir cette épine du pied, il aurai droit à
toute ma reconnaissance
Merci pour vos reponses
--
____
( O | O )
--
_oooO_ JLuc _Oooo_
O-O
Oui c'est normal,
dans ta déclaration il ne faut pas dimensionner ton tableau : pas de chiffre
entre les parenthèses
Dim Machines() As New Machine
dans topn premier chargement tu peux alors mettre ensuite un dimensionnement
reDim Machines(1)
et ensuite tu peux redimensionner 'à volonté' ton tableau
Driss
"JLuc" <ns.jeanluc.laurent@free.fr.ns> a écrit dans le message de
news:mn.0c1a7d6caccbbc99.40692@free.fr.ns...
Bonjour les lecteurs,
VB6
Voila mon petit soucis :
J'ai créer un module de classe que j'ai appelé "Machine".
Dans le module du formulaire, je déclare une variable array "globale"de
cette façon :
Dim Machines(1) As New Machine
Ensuite, sur une sélection dans un menu, je veux ajouter une entrée.
Donc je fais :
ReDim Preserve Machines(UBound(Machines) + 1)
Et là, elle me mets :
Erreur de compillation. Tableau déjà dimentionné.
Où est ce que je commets une erreur ? J'avoue que je ne vois pas ce qui
cloche :/
Si quelqu'un pouvait me sortir cette épine du pied, il aurai droit à
toute ma reconnaissance
Merci pour vos reponses
--
____
( O | O )
--
_oooO_ JLuc _Oooo_
O-O
Oui c'est normal,
dans ta déclaration il ne faut pas dimensionner ton tableau : pas de chiffre
entre les parenthèses
Dim Machines() As New Machine
dans topn premier chargement tu peux alors mettre ensuite un dimensionnement
reDim Machines(1)
et ensuite tu peux redimensionner 'à volonté' ton tableau
Driss
"JLuc" a écrit dans le message de
news:Bonjour les lecteurs,
VB6
Voila mon petit soucis :
J'ai créer un module de classe que j'ai appelé "Machine".
Dans le module du formulaire, je déclare une variable array "globale"de
cette façon :
Dim Machines(1) As New Machine
Ensuite, sur une sélection dans un menu, je veux ajouter une entrée.
Donc je fais :
ReDim Preserve Machines(UBound(Machines) + 1)
Et là, elle me mets :
Erreur de compillation. Tableau déjà dimentionné.
Où est ce que je commets une erreur ? J'avoue que je ne vois pas ce qui
cloche :/
Si quelqu'un pouvait me sortir cette épine du pied, il aurai droit à
toute ma reconnaissance
Merci pour vos reponses
--
____
( O | O )
--
_oooO_ JLuc _Oooo_
O-O
"JLuc" a écrit dans le message de news:Bonjour les lecteurs,
VB6
Voila mon petit soucis :
J'ai créer un module de classe que j'ai appelé "Machine".
Dans le module du formulaire, je déclare une variable array "globale"de
cette façon :
Dim Machines(1) As New Machine
Ensuite, sur une sélection dans un menu, je veux ajouter une entrée. Donc
je fais :
ReDim Preserve Machines(UBound(Machines) + 1)
Et là, elle me mets :
Erreur de compillation. Tableau déjà dimentionné.
Où est ce que je commets une erreur ? J'avoue que je ne vois pas ce qui
cloche :/
Si quelqu'un pouvait me sortir cette épine du pied, il aurai droit à toute
ma reconnaissance
Hello,
Voici une façon (assez) classique de faire:
'
' déclaration sans dimensions, sans New
'
Dim machines() As Machine
'
' première allocation
'
ReDim machines(1)
Set machines(1) = New Machine
'
' puis pour toutes les suivantes
'
Dim idxNewInstance As Long
idxNewInstance = UBound(machines) + 1
ReDim Preserve machines(idxNewInstance)
Set machines(idxNewInstance) = New Machine
C'est une façon de faire, sure et propre, qui a en
plus le mérite de fonctionner parfaitement :-)
Note: le fait de dissocier la première allocation des autres
est juste pour s'éviter un test vérifiant que machines() a au
moins un élément.
"JLuc" <ns.jeanluc.laurent@free.fr.ns> a écrit dans le message de news:
mn.0c1a7d6caccbbc99.40692@free.fr.ns...
Bonjour les lecteurs,
VB6
Voila mon petit soucis :
J'ai créer un module de classe que j'ai appelé "Machine".
Dans le module du formulaire, je déclare une variable array "globale"de
cette façon :
Dim Machines(1) As New Machine
Ensuite, sur une sélection dans un menu, je veux ajouter une entrée. Donc
je fais :
ReDim Preserve Machines(UBound(Machines) + 1)
Et là, elle me mets :
Erreur de compillation. Tableau déjà dimentionné.
Où est ce que je commets une erreur ? J'avoue que je ne vois pas ce qui
cloche :/
Si quelqu'un pouvait me sortir cette épine du pied, il aurai droit à toute
ma reconnaissance
Hello,
Voici une façon (assez) classique de faire:
'
' déclaration sans dimensions, sans New
'
Dim machines() As Machine
'
' première allocation
'
ReDim machines(1)
Set machines(1) = New Machine
'
' puis pour toutes les suivantes
'
Dim idxNewInstance As Long
idxNewInstance = UBound(machines) + 1
ReDim Preserve machines(idxNewInstance)
Set machines(idxNewInstance) = New Machine
C'est une façon de faire, sure et propre, qui a en
plus le mérite de fonctionner parfaitement :-)
Note: le fait de dissocier la première allocation des autres
est juste pour s'éviter un test vérifiant que machines() a au
moins un élément.
"JLuc" a écrit dans le message de news:Bonjour les lecteurs,
VB6
Voila mon petit soucis :
J'ai créer un module de classe que j'ai appelé "Machine".
Dans le module du formulaire, je déclare une variable array "globale"de
cette façon :
Dim Machines(1) As New Machine
Ensuite, sur une sélection dans un menu, je veux ajouter une entrée. Donc
je fais :
ReDim Preserve Machines(UBound(Machines) + 1)
Et là, elle me mets :
Erreur de compillation. Tableau déjà dimentionné.
Où est ce que je commets une erreur ? J'avoue que je ne vois pas ce qui
cloche :/
Si quelqu'un pouvait me sortir cette épine du pied, il aurai droit à toute
ma reconnaissance
Hello,
Voici une façon (assez) classique de faire:
'
' déclaration sans dimensions, sans New
'
Dim machines() As Machine
'
' première allocation
'
ReDim machines(1)
Set machines(1) = New Machine
'
' puis pour toutes les suivantes
'
Dim idxNewInstance As Long
idxNewInstance = UBound(machines) + 1
ReDim Preserve machines(idxNewInstance)
Set machines(idxNewInstance) = New Machine
C'est une façon de faire, sure et propre, qui a en
plus le mérite de fonctionner parfaitement :-)
Note: le fait de dissocier la première allocation des autres
est juste pour s'éviter un test vérifiant que machines() a au
moins un élément.
"JLuc" a écrit dans le message de news:Bonjour les lecteurs,
VB6
Voila mon petit soucis :
J'ai créer un module de classe que j'ai appelé "Machine".
Dans le module du formulaire, je déclare une variable array "globale"de
cette façon :
Dim Machines(1) As New Machine
Ensuite, sur une sélection dans un menu, je veux ajouter une entrée. Donc
je fais :
ReDim Preserve Machines(UBound(Machines) + 1)
Et là, elle me mets :
Erreur de compillation. Tableau déjà dimentionné.
Où est ce que je commets une erreur ? J'avoue que je ne vois pas ce qui
cloche :/
Si quelqu'un pouvait me sortir cette épine du pied, il aurai droit à toute
ma reconnaissance
Hello,
Voici une façon (assez) classique de faire:
'
' déclaration sans dimensions, sans New
'
Dim machines() As Machine
'
' première allocation
'
ReDim machines(1)
Set machines(1) = New Machine
'
' puis pour toutes les suivantes
'
Dim idxNewInstance As Long
idxNewInstance = UBound(machines) + 1
ReDim Preserve machines(idxNewInstance)
Set machines(idxNewInstance) = New Machine
C'est une façon de faire, sure et propre, qui a en
plus le mérite de fonctionner parfaitement :-)
Note: le fait de dissocier la première allocation des autres
est juste pour s'éviter un test vérifiant que machines() a au
moins un élément.
"JLuc" <ns.jeanluc.laurent@free.fr.ns> a écrit dans le message de news:
mn.0c1a7d6caccbbc99.40692@free.fr.ns...
Bonjour les lecteurs,
VB6
Voila mon petit soucis :
J'ai créer un module de classe que j'ai appelé "Machine".
Dans le module du formulaire, je déclare une variable array "globale"de
cette façon :
Dim Machines(1) As New Machine
Ensuite, sur une sélection dans un menu, je veux ajouter une entrée. Donc
je fais :
ReDim Preserve Machines(UBound(Machines) + 1)
Et là, elle me mets :
Erreur de compillation. Tableau déjà dimentionné.
Où est ce que je commets une erreur ? J'avoue que je ne vois pas ce qui
cloche :/
Si quelqu'un pouvait me sortir cette épine du pied, il aurai droit à toute
ma reconnaissance
Hello,
Voici une façon (assez) classique de faire:
'
' déclaration sans dimensions, sans New
'
Dim machines() As Machine
'
' première allocation
'
ReDim machines(1)
Set machines(1) = New Machine
'
' puis pour toutes les suivantes
'
Dim idxNewInstance As Long
idxNewInstance = UBound(machines) + 1
ReDim Preserve machines(idxNewInstance)
Set machines(idxNewInstance) = New Machine
C'est une façon de faire, sure et propre, qui a en
plus le mérite de fonctionner parfaitement :-)
Note: le fait de dissocier la première allocation des autres
est juste pour s'éviter un test vérifiant que machines() a au
moins un élément.
"JLuc" a écrit dans le message de news:Bonjour les lecteurs,
VB6
Voila mon petit soucis :
J'ai créer un module de classe que j'ai appelé "Machine".
Dans le module du formulaire, je déclare une variable array "globale"de
cette façon :
Dim Machines(1) As New Machine
Ensuite, sur une sélection dans un menu, je veux ajouter une entrée. Donc
je fais :
ReDim Preserve Machines(UBound(Machines) + 1)
Et là, elle me mets :
Erreur de compillation. Tableau déjà dimentionné.
Où est ce que je commets une erreur ? J'avoue que je ne vois pas ce qui
cloche :/
Si quelqu'un pouvait me sortir cette épine du pied, il aurai droit à toute
ma reconnaissance
Hello,
Voici une façon (assez) classique de faire:
'
' déclaration sans dimensions, sans New
'
Dim machines() As Machine
'
' première allocation
'
ReDim machines(1)
Set machines(1) = New Machine
'
' puis pour toutes les suivantes
'
Dim idxNewInstance As Long
idxNewInstance = UBound(machines) + 1
ReDim Preserve machines(idxNewInstance)
Set machines(idxNewInstance) = New Machine
C'est une façon de faire, sure et propre, qui a en
plus le mérite de fonctionner parfaitement :-)
Note: le fait de dissocier la première allocation des autres
est juste pour s'éviter un test vérifiant que machines() a au
moins un élément.
Petite question subsidiaire :
est il possible et facile de passer l'appli de VB6 à VB2005 ?
Doit on prévoir de grosse modifs ?
Jean-marc a utilisé son clavier pour écrire :"JLuc" a écrit dans le message de news:Bonjour les lecteurs,
VB6
Voila mon petit soucis :
J'ai créer un module de classe que j'ai appelé "Machine".
Dans le module du formulaire, je déclare une variable array "globale"de
cette façon :
Dim Machines(1) As New Machine
Ensuite, sur une sélection dans un menu, je veux ajouter une entrée.
Donc je fais :
ReDim Preserve Machines(UBound(Machines) + 1)
Et là, elle me mets :
Erreur de compillation. Tableau déjà dimentionné.
Où est ce que je commets une erreur ? J'avoue que je ne vois pas ce qui
cloche :/
Si quelqu'un pouvait me sortir cette épine du pied, il aurai droit à
toute ma reconnaissance
Hello,
Voici une façon (assez) classique de faire:
'
' déclaration sans dimensions, sans New
'
Dim machines() As Machine
'
' première allocation
'
ReDim machines(1)
Set machines(1) = New Machine
'
' puis pour toutes les suivantes
'
Dim idxNewInstance As Long
idxNewInstance = UBound(machines) + 1
ReDim Preserve machines(idxNewInstance)
Set machines(idxNewInstance) = New Machine
C'est une façon de faire, sure et propre, qui a en
plus le mérite de fonctionner parfaitement :-)
Note: le fait de dissocier la première allocation des autres
est juste pour s'éviter un test vérifiant que machines() a au
moins un élément.
--
____
( O | O )
--
_oooO_ JLuc _Oooo_
O-O
Petite question subsidiaire :
est il possible et facile de passer l'appli de VB6 à VB2005 ?
Doit on prévoir de grosse modifs ?
Jean-marc a utilisé son clavier pour écrire :
"JLuc" <ns.jeanluc.laurent@free.fr.ns> a écrit dans le message de news:
mn.0c1a7d6caccbbc99.40692@free.fr.ns...
Bonjour les lecteurs,
VB6
Voila mon petit soucis :
J'ai créer un module de classe que j'ai appelé "Machine".
Dans le module du formulaire, je déclare une variable array "globale"de
cette façon :
Dim Machines(1) As New Machine
Ensuite, sur une sélection dans un menu, je veux ajouter une entrée.
Donc je fais :
ReDim Preserve Machines(UBound(Machines) + 1)
Et là, elle me mets :
Erreur de compillation. Tableau déjà dimentionné.
Où est ce que je commets une erreur ? J'avoue que je ne vois pas ce qui
cloche :/
Si quelqu'un pouvait me sortir cette épine du pied, il aurai droit à
toute ma reconnaissance
Hello,
Voici une façon (assez) classique de faire:
'
' déclaration sans dimensions, sans New
'
Dim machines() As Machine
'
' première allocation
'
ReDim machines(1)
Set machines(1) = New Machine
'
' puis pour toutes les suivantes
'
Dim idxNewInstance As Long
idxNewInstance = UBound(machines) + 1
ReDim Preserve machines(idxNewInstance)
Set machines(idxNewInstance) = New Machine
C'est une façon de faire, sure et propre, qui a en
plus le mérite de fonctionner parfaitement :-)
Note: le fait de dissocier la première allocation des autres
est juste pour s'éviter un test vérifiant que machines() a au
moins un élément.
--
____
( O | O )
--
_oooO_ JLuc _Oooo_
O-O
Petite question subsidiaire :
est il possible et facile de passer l'appli de VB6 à VB2005 ?
Doit on prévoir de grosse modifs ?
Jean-marc a utilisé son clavier pour écrire :"JLuc" a écrit dans le message de news:Bonjour les lecteurs,
VB6
Voila mon petit soucis :
J'ai créer un module de classe que j'ai appelé "Machine".
Dans le module du formulaire, je déclare une variable array "globale"de
cette façon :
Dim Machines(1) As New Machine
Ensuite, sur une sélection dans un menu, je veux ajouter une entrée.
Donc je fais :
ReDim Preserve Machines(UBound(Machines) + 1)
Et là, elle me mets :
Erreur de compillation. Tableau déjà dimentionné.
Où est ce que je commets une erreur ? J'avoue que je ne vois pas ce qui
cloche :/
Si quelqu'un pouvait me sortir cette épine du pied, il aurai droit à
toute ma reconnaissance
Hello,
Voici une façon (assez) classique de faire:
'
' déclaration sans dimensions, sans New
'
Dim machines() As Machine
'
' première allocation
'
ReDim machines(1)
Set machines(1) = New Machine
'
' puis pour toutes les suivantes
'
Dim idxNewInstance As Long
idxNewInstance = UBound(machines) + 1
ReDim Preserve machines(idxNewInstance)
Set machines(idxNewInstance) = New Machine
C'est une façon de faire, sure et propre, qui a en
plus le mérite de fonctionner parfaitement :-)
Note: le fait de dissocier la première allocation des autres
est juste pour s'éviter un test vérifiant que machines() a au
moins un élément.
--
____
( O | O )
--
_oooO_ JLuc _Oooo_
O-O
C'est possible, en théorie. A tel point qu'il y a même
un assistant qui est là pour aider à cette conversion.
Ca, c'est la théorie...
La pratique maintenant: J'ai pu migrer de (toutes) petites
applications sans trop de soucis, en revanche, l'assistant
a "calé" sur des applications plus grosses.
Dans ce cas, il génère tellement d'erreurs que les résoudre
une à une est un calvaire.
MAIS, et c'est le plus important, une application bien fichue
(clairement découpée en fonctions bien isolées, etc.) n'est pas
compliquée à porter, il faut juste le faire manuellement plutot
qu'avec l'assistant. Le meilleur conseil à donner est sans doute
de bien comprendre la philosophie de VB2005, de réécrire la partie
graphique dans l'esprit VB2055, puis de faire le portage de la
logique business, en réutilisant les principes et algorithmes, qui
eux de toute façon de changent pas.
--
Jean-marc Noury (jean_marc_n2)
Microsoft MVP - Visual Basic
mailto: remove '_no_spam_' ;
FAQ VB: http://faq.vb.free.fr/
"JLuc" a écrit dans le message de news:Petite question subsidiaire :
est il possible et facile de passer l'appli de VB6 à VB2005 ?
Doit on prévoir de grosse modifs ?
Jean-marc a utilisé son clavier pour écrire :"JLuc" a écrit dans le message de news:Bonjour les lecteurs,
VB6
Voila mon petit soucis :
J'ai créer un module de classe que j'ai appelé "Machine".
Dans le module du formulaire, je déclare une variable array "globale"de
cette façon :
Dim Machines(1) As New Machine
Ensuite, sur une sélection dans un menu, je veux ajouter une entrée. Donc
je fais :
ReDim Preserve Machines(UBound(Machines) + 1)
Et là, elle me mets :
Erreur de compillation. Tableau déjà dimentionné.
Où est ce que je commets une erreur ? J'avoue que je ne vois pas ce qui
cloche :/
Si quelqu'un pouvait me sortir cette épine du pied, il aurai droit à
toute ma reconnaissance
Hello,
Voici une façon (assez) classique de faire:
'
' déclaration sans dimensions, sans New
'
Dim machines() As Machine
'
' première allocation
'
ReDim machines(1)
Set machines(1) = New Machine
'
' puis pour toutes les suivantes
'
Dim idxNewInstance As Long
idxNewInstance = UBound(machines) + 1
ReDim Preserve machines(idxNewInstance)
Set machines(idxNewInstance) = New Machine
C'est une façon de faire, sure et propre, qui a en
plus le mérite de fonctionner parfaitement :-)
Note: le fait de dissocier la première allocation des autres
est juste pour s'éviter un test vérifiant que machines() a au
moins un élément.
-- ____
( O | O )
--
_oooO_ JLuc _Oooo_
O-O
C'est possible, en théorie. A tel point qu'il y a même
un assistant qui est là pour aider à cette conversion.
Ca, c'est la théorie...
La pratique maintenant: J'ai pu migrer de (toutes) petites
applications sans trop de soucis, en revanche, l'assistant
a "calé" sur des applications plus grosses.
Dans ce cas, il génère tellement d'erreurs que les résoudre
une à une est un calvaire.
MAIS, et c'est le plus important, une application bien fichue
(clairement découpée en fonctions bien isolées, etc.) n'est pas
compliquée à porter, il faut juste le faire manuellement plutot
qu'avec l'assistant. Le meilleur conseil à donner est sans doute
de bien comprendre la philosophie de VB2005, de réécrire la partie
graphique dans l'esprit VB2055, puis de faire le portage de la
logique business, en réutilisant les principes et algorithmes, qui
eux de toute façon de changent pas.
--
Jean-marc Noury (jean_marc_n2)
Microsoft MVP - Visual Basic
mailto: remove '_no_spam_' ; _no_spam_jean_marc_n2@yahoo.fr
FAQ VB: http://faq.vb.free.fr/
"JLuc" <ns.jeanluc.laurent@free.fr.ns> a écrit dans le message de news:
mn.0c3e7d6c14f82981.40692@free.fr.ns...
Petite question subsidiaire :
est il possible et facile de passer l'appli de VB6 à VB2005 ?
Doit on prévoir de grosse modifs ?
Jean-marc a utilisé son clavier pour écrire :
"JLuc" <ns.jeanluc.laurent@free.fr.ns> a écrit dans le message de news:
mn.0c1a7d6caccbbc99.40692@free.fr.ns...
Bonjour les lecteurs,
VB6
Voila mon petit soucis :
J'ai créer un module de classe que j'ai appelé "Machine".
Dans le module du formulaire, je déclare une variable array "globale"de
cette façon :
Dim Machines(1) As New Machine
Ensuite, sur une sélection dans un menu, je veux ajouter une entrée. Donc
je fais :
ReDim Preserve Machines(UBound(Machines) + 1)
Et là, elle me mets :
Erreur de compillation. Tableau déjà dimentionné.
Où est ce que je commets une erreur ? J'avoue que je ne vois pas ce qui
cloche :/
Si quelqu'un pouvait me sortir cette épine du pied, il aurai droit à
toute ma reconnaissance
Hello,
Voici une façon (assez) classique de faire:
'
' déclaration sans dimensions, sans New
'
Dim machines() As Machine
'
' première allocation
'
ReDim machines(1)
Set machines(1) = New Machine
'
' puis pour toutes les suivantes
'
Dim idxNewInstance As Long
idxNewInstance = UBound(machines) + 1
ReDim Preserve machines(idxNewInstance)
Set machines(idxNewInstance) = New Machine
C'est une façon de faire, sure et propre, qui a en
plus le mérite de fonctionner parfaitement :-)
Note: le fait de dissocier la première allocation des autres
est juste pour s'éviter un test vérifiant que machines() a au
moins un élément.
-- ____
( O | O )
--
_oooO_ JLuc _Oooo_
O-O
C'est possible, en théorie. A tel point qu'il y a même
un assistant qui est là pour aider à cette conversion.
Ca, c'est la théorie...
La pratique maintenant: J'ai pu migrer de (toutes) petites
applications sans trop de soucis, en revanche, l'assistant
a "calé" sur des applications plus grosses.
Dans ce cas, il génère tellement d'erreurs que les résoudre
une à une est un calvaire.
MAIS, et c'est le plus important, une application bien fichue
(clairement découpée en fonctions bien isolées, etc.) n'est pas
compliquée à porter, il faut juste le faire manuellement plutot
qu'avec l'assistant. Le meilleur conseil à donner est sans doute
de bien comprendre la philosophie de VB2005, de réécrire la partie
graphique dans l'esprit VB2055, puis de faire le portage de la
logique business, en réutilisant les principes et algorithmes, qui
eux de toute façon de changent pas.
--
Jean-marc Noury (jean_marc_n2)
Microsoft MVP - Visual Basic
mailto: remove '_no_spam_' ;
FAQ VB: http://faq.vb.free.fr/
"JLuc" a écrit dans le message de news:Petite question subsidiaire :
est il possible et facile de passer l'appli de VB6 à VB2005 ?
Doit on prévoir de grosse modifs ?
Jean-marc a utilisé son clavier pour écrire :"JLuc" a écrit dans le message de news:Bonjour les lecteurs,
VB6
Voila mon petit soucis :
J'ai créer un module de classe que j'ai appelé "Machine".
Dans le module du formulaire, je déclare une variable array "globale"de
cette façon :
Dim Machines(1) As New Machine
Ensuite, sur une sélection dans un menu, je veux ajouter une entrée. Donc
je fais :
ReDim Preserve Machines(UBound(Machines) + 1)
Et là, elle me mets :
Erreur de compillation. Tableau déjà dimentionné.
Où est ce que je commets une erreur ? J'avoue que je ne vois pas ce qui
cloche :/
Si quelqu'un pouvait me sortir cette épine du pied, il aurai droit à
toute ma reconnaissance
Hello,
Voici une façon (assez) classique de faire:
'
' déclaration sans dimensions, sans New
'
Dim machines() As Machine
'
' première allocation
'
ReDim machines(1)
Set machines(1) = New Machine
'
' puis pour toutes les suivantes
'
Dim idxNewInstance As Long
idxNewInstance = UBound(machines) + 1
ReDim Preserve machines(idxNewInstance)
Set machines(idxNewInstance) = New Machine
C'est une façon de faire, sure et propre, qui a en
plus le mérite de fonctionner parfaitement :-)
Note: le fait de dissocier la première allocation des autres
est juste pour s'éviter un test vérifiant que machines() a au
moins un élément.
-- ____
( O | O )
--
_oooO_ JLuc _Oooo_
O-O
Merci pour ces précisions. Par contre, pour la partie graphique, tu crois
qu'il vaut mieux refaire les forms plûtot que de les importés ?
Bonjour Jean-marc,C'est possible, en théorie. A tel point qu'il y a même
un assistant qui est là pour aider à cette conversion.
Ca, c'est la théorie...
La pratique maintenant: J'ai pu migrer de (toutes) petites
applications sans trop de soucis, en revanche, l'assistant
a "calé" sur des applications plus grosses.
Dans ce cas, il génère tellement d'erreurs que les résoudre
une à une est un calvaire.
MAIS, et c'est le plus important, une application bien fichue
(clairement découpée en fonctions bien isolées, etc.) n'est pas
compliquée à porter, il faut juste le faire manuellement plutot
qu'avec l'assistant. Le meilleur conseil à donner est sans doute
de bien comprendre la philosophie de VB2005, de réécrire la partie
graphique dans l'esprit VB2055, puis de faire le portage de la
logique business, en réutilisant les principes et algorithmes, qui
eux de toute façon de changent pas.
--
Jean-marc Noury (jean_marc_n2)
Microsoft MVP - Visual Basic
mailto: remove '_no_spam_' ;
FAQ VB: http://faq.vb.free.fr/
"JLuc" a écrit dans le message de news:Petite question subsidiaire :
est il possible et facile de passer l'appli de VB6 à VB2005 ?
Doit on prévoir de grosse modifs ?
Jean-marc a utilisé son clavier pour écrire :"JLuc" a écrit dans le message de news:Bonjour les lecteurs,
VB6
Voila mon petit soucis :
J'ai créer un module de classe que j'ai appelé "Machine".
Dans le module du formulaire, je déclare une variable array
"globale"de cette façon :
Dim Machines(1) As New Machine
Ensuite, sur une sélection dans un menu, je veux ajouter une entrée.
Donc je fais :
ReDim Preserve Machines(UBound(Machines) + 1)
Et là, elle me mets :
Erreur de compillation. Tableau déjà dimentionné.
Où est ce que je commets une erreur ? J'avoue que je ne vois pas ce
qui cloche :/
Si quelqu'un pouvait me sortir cette épine du pied, il aurai droit à
toute ma reconnaissance
Hello,
Voici une façon (assez) classique de faire:
'
' déclaration sans dimensions, sans New
'
Dim machines() As Machine
'
' première allocation
'
ReDim machines(1)
Set machines(1) = New Machine
'
' puis pour toutes les suivantes
'
Dim idxNewInstance As Long
idxNewInstance = UBound(machines) + 1
ReDim Preserve machines(idxNewInstance)
Set machines(idxNewInstance) = New Machine
C'est une façon de faire, sure et propre, qui a en
plus le mérite de fonctionner parfaitement :-)
Note: le fait de dissocier la première allocation des autres
est juste pour s'éviter un test vérifiant que machines() a au
moins un élément.
-- ____
( O | O )
--
_oooO_ JLuc _Oooo_
O-O
--
____
( O | O )
--
_oooO_ JLuc _Oooo_
O-O
Merci pour ces précisions. Par contre, pour la partie graphique, tu crois
qu'il vaut mieux refaire les forms plûtot que de les importés ?
Bonjour Jean-marc,
C'est possible, en théorie. A tel point qu'il y a même
un assistant qui est là pour aider à cette conversion.
Ca, c'est la théorie...
La pratique maintenant: J'ai pu migrer de (toutes) petites
applications sans trop de soucis, en revanche, l'assistant
a "calé" sur des applications plus grosses.
Dans ce cas, il génère tellement d'erreurs que les résoudre
une à une est un calvaire.
MAIS, et c'est le plus important, une application bien fichue
(clairement découpée en fonctions bien isolées, etc.) n'est pas
compliquée à porter, il faut juste le faire manuellement plutot
qu'avec l'assistant. Le meilleur conseil à donner est sans doute
de bien comprendre la philosophie de VB2005, de réécrire la partie
graphique dans l'esprit VB2055, puis de faire le portage de la
logique business, en réutilisant les principes et algorithmes, qui
eux de toute façon de changent pas.
--
Jean-marc Noury (jean_marc_n2)
Microsoft MVP - Visual Basic
mailto: remove '_no_spam_' ; _no_spam_jean_marc_n2@yahoo.fr
FAQ VB: http://faq.vb.free.fr/
"JLuc" <ns.jeanluc.laurent@free.fr.ns> a écrit dans le message de news:
mn.0c3e7d6c14f82981.40692@free.fr.ns...
Petite question subsidiaire :
est il possible et facile de passer l'appli de VB6 à VB2005 ?
Doit on prévoir de grosse modifs ?
Jean-marc a utilisé son clavier pour écrire :
"JLuc" <ns.jeanluc.laurent@free.fr.ns> a écrit dans le message de news:
mn.0c1a7d6caccbbc99.40692@free.fr.ns...
Bonjour les lecteurs,
VB6
Voila mon petit soucis :
J'ai créer un module de classe que j'ai appelé "Machine".
Dans le module du formulaire, je déclare une variable array
"globale"de cette façon :
Dim Machines(1) As New Machine
Ensuite, sur une sélection dans un menu, je veux ajouter une entrée.
Donc je fais :
ReDim Preserve Machines(UBound(Machines) + 1)
Et là, elle me mets :
Erreur de compillation. Tableau déjà dimentionné.
Où est ce que je commets une erreur ? J'avoue que je ne vois pas ce
qui cloche :/
Si quelqu'un pouvait me sortir cette épine du pied, il aurai droit à
toute ma reconnaissance
Hello,
Voici une façon (assez) classique de faire:
'
' déclaration sans dimensions, sans New
'
Dim machines() As Machine
'
' première allocation
'
ReDim machines(1)
Set machines(1) = New Machine
'
' puis pour toutes les suivantes
'
Dim idxNewInstance As Long
idxNewInstance = UBound(machines) + 1
ReDim Preserve machines(idxNewInstance)
Set machines(idxNewInstance) = New Machine
C'est une façon de faire, sure et propre, qui a en
plus le mérite de fonctionner parfaitement :-)
Note: le fait de dissocier la première allocation des autres
est juste pour s'éviter un test vérifiant que machines() a au
moins un élément.
-- ____
( O | O )
--
_oooO_ JLuc _Oooo_
O-O
--
____
( O | O )
--
_oooO_ JLuc _Oooo_
O-O
Merci pour ces précisions. Par contre, pour la partie graphique, tu crois
qu'il vaut mieux refaire les forms plûtot que de les importés ?
Bonjour Jean-marc,C'est possible, en théorie. A tel point qu'il y a même
un assistant qui est là pour aider à cette conversion.
Ca, c'est la théorie...
La pratique maintenant: J'ai pu migrer de (toutes) petites
applications sans trop de soucis, en revanche, l'assistant
a "calé" sur des applications plus grosses.
Dans ce cas, il génère tellement d'erreurs que les résoudre
une à une est un calvaire.
MAIS, et c'est le plus important, une application bien fichue
(clairement découpée en fonctions bien isolées, etc.) n'est pas
compliquée à porter, il faut juste le faire manuellement plutot
qu'avec l'assistant. Le meilleur conseil à donner est sans doute
de bien comprendre la philosophie de VB2005, de réécrire la partie
graphique dans l'esprit VB2055, puis de faire le portage de la
logique business, en réutilisant les principes et algorithmes, qui
eux de toute façon de changent pas.
--
Jean-marc Noury (jean_marc_n2)
Microsoft MVP - Visual Basic
mailto: remove '_no_spam_' ;
FAQ VB: http://faq.vb.free.fr/
"JLuc" a écrit dans le message de news:Petite question subsidiaire :
est il possible et facile de passer l'appli de VB6 à VB2005 ?
Doit on prévoir de grosse modifs ?
Jean-marc a utilisé son clavier pour écrire :"JLuc" a écrit dans le message de news:Bonjour les lecteurs,
VB6
Voila mon petit soucis :
J'ai créer un module de classe que j'ai appelé "Machine".
Dans le module du formulaire, je déclare une variable array
"globale"de cette façon :
Dim Machines(1) As New Machine
Ensuite, sur une sélection dans un menu, je veux ajouter une entrée.
Donc je fais :
ReDim Preserve Machines(UBound(Machines) + 1)
Et là, elle me mets :
Erreur de compillation. Tableau déjà dimentionné.
Où est ce que je commets une erreur ? J'avoue que je ne vois pas ce
qui cloche :/
Si quelqu'un pouvait me sortir cette épine du pied, il aurai droit à
toute ma reconnaissance
Hello,
Voici une façon (assez) classique de faire:
'
' déclaration sans dimensions, sans New
'
Dim machines() As Machine
'
' première allocation
'
ReDim machines(1)
Set machines(1) = New Machine
'
' puis pour toutes les suivantes
'
Dim idxNewInstance As Long
idxNewInstance = UBound(machines) + 1
ReDim Preserve machines(idxNewInstance)
Set machines(idxNewInstance) = New Machine
C'est une façon de faire, sure et propre, qui a en
plus le mérite de fonctionner parfaitement :-)
Note: le fait de dissocier la première allocation des autres
est juste pour s'éviter un test vérifiant que machines() a au
moins un élément.
-- ____
( O | O )
--
_oooO_ JLuc _Oooo_
O-O
--
____
( O | O )
--
_oooO_ JLuc _Oooo_
O-O
Oui c'est normal,
dans ta déclaration il ne faut pas dimensionner ton tableau : pas de chiffre
entre les parenthèses
Dim Machines() As New Machine
dans topn premier chargement tu peux alors mettre ensuite un dimensionnement
reDim Machines(1)
et ensuite tu peux redimensionner 'à volonté' ton tableau
Driss
"JLuc" a écrit dans le message de
news:Bonjour les lecteurs,
VB6
Voila mon petit soucis :
J'ai créer un module de classe que j'ai appelé "Machine".
Dans le module du formulaire, je déclare une variable array "globale"de
cette façon :
Dim Machines(1) As New Machine
Ensuite, sur une sélection dans un menu, je veux ajouter une entrée.
Donc je fais :
ReDim Preserve Machines(UBound(Machines) + 1)
Et là, elle me mets :
Erreur de compillation. Tableau déjà dimentionné.
Où est ce que je commets une erreur ? J'avoue que je ne vois pas ce qui
cloche :/
Si quelqu'un pouvait me sortir cette épine du pied, il aurai droit à
toute ma reconnaissance
Merci pour vos reponses
--
____
( O | O )
--
_oooO_ JLuc _Oooo_
O-O
Oui c'est normal,
dans ta déclaration il ne faut pas dimensionner ton tableau : pas de chiffre
entre les parenthèses
Dim Machines() As New Machine
dans topn premier chargement tu peux alors mettre ensuite un dimensionnement
reDim Machines(1)
et ensuite tu peux redimensionner 'à volonté' ton tableau
Driss
"JLuc" <ns.jeanluc.laurent@free.fr.ns> a écrit dans le message de
news:mn.0c1a7d6caccbbc99.40692@free.fr.ns...
Bonjour les lecteurs,
VB6
Voila mon petit soucis :
J'ai créer un module de classe que j'ai appelé "Machine".
Dans le module du formulaire, je déclare une variable array "globale"de
cette façon :
Dim Machines(1) As New Machine
Ensuite, sur une sélection dans un menu, je veux ajouter une entrée.
Donc je fais :
ReDim Preserve Machines(UBound(Machines) + 1)
Et là, elle me mets :
Erreur de compillation. Tableau déjà dimentionné.
Où est ce que je commets une erreur ? J'avoue que je ne vois pas ce qui
cloche :/
Si quelqu'un pouvait me sortir cette épine du pied, il aurai droit à
toute ma reconnaissance
Merci pour vos reponses
--
____
( O | O )
--
_oooO_ JLuc _Oooo_
O-O
Oui c'est normal,
dans ta déclaration il ne faut pas dimensionner ton tableau : pas de chiffre
entre les parenthèses
Dim Machines() As New Machine
dans topn premier chargement tu peux alors mettre ensuite un dimensionnement
reDim Machines(1)
et ensuite tu peux redimensionner 'à volonté' ton tableau
Driss
"JLuc" a écrit dans le message de
news:Bonjour les lecteurs,
VB6
Voila mon petit soucis :
J'ai créer un module de classe que j'ai appelé "Machine".
Dans le module du formulaire, je déclare une variable array "globale"de
cette façon :
Dim Machines(1) As New Machine
Ensuite, sur une sélection dans un menu, je veux ajouter une entrée.
Donc je fais :
ReDim Preserve Machines(UBound(Machines) + 1)
Et là, elle me mets :
Erreur de compillation. Tableau déjà dimentionné.
Où est ce que je commets une erreur ? J'avoue que je ne vois pas ce qui
cloche :/
Si quelqu'un pouvait me sortir cette épine du pied, il aurai droit à
toute ma reconnaissance
Merci pour vos reponses
--
____
( O | O )
--
_oooO_ JLuc _Oooo_
O-O
"JLuc" a écrit dans le message de news:Bonjour les lecteurs,
VB6
Voila mon petit soucis :
J'ai créer un module de classe que j'ai appelé "Machine".
Dans le module du formulaire, je déclare une variable array "globale"de
cette façon :
Dim Machines(1) As New Machine
Ensuite, sur une sélection dans un menu, je veux ajouter une entrée. Donc
je fais :
ReDim Preserve Machines(UBound(Machines) + 1)
Et là, elle me mets :
Erreur de compillation. Tableau déjà dimentionné.
Où est ce que je commets une erreur ? J'avoue que je ne vois pas ce qui
cloche :/
Si quelqu'un pouvait me sortir cette épine du pied, il aurai droit à toute
ma reconnaissance
Hello,
Voici une façon (assez) classique de faire:
'
' déclaration sans dimensions, sans New
'
Dim machines() As Machine
'
' première allocation
'
ReDim machines(1)
Set machines(1) = New Machine
'
' puis pour toutes les suivantes
'
Dim idxNewInstance As Long
idxNewInstance = UBound(machines) + 1
ReDim Preserve machines(idxNewInstance)
Set machines(idxNewInstance) = New Machine
C'est une façon de faire, sure et propre, qui a en
plus le mérite de fonctionner parfaitement :-)
Note: le fait de dissocier la première allocation des autres
est juste pour s'éviter un test vérifiant que machines() a au
moins un élément.
"JLuc" <ns.jeanluc.laurent@free.fr.ns> a écrit dans le message de news:
mn.0c1a7d6caccbbc99.40692@free.fr.ns...
Bonjour les lecteurs,
VB6
Voila mon petit soucis :
J'ai créer un module de classe que j'ai appelé "Machine".
Dans le module du formulaire, je déclare une variable array "globale"de
cette façon :
Dim Machines(1) As New Machine
Ensuite, sur une sélection dans un menu, je veux ajouter une entrée. Donc
je fais :
ReDim Preserve Machines(UBound(Machines) + 1)
Et là, elle me mets :
Erreur de compillation. Tableau déjà dimentionné.
Où est ce que je commets une erreur ? J'avoue que je ne vois pas ce qui
cloche :/
Si quelqu'un pouvait me sortir cette épine du pied, il aurai droit à toute
ma reconnaissance
Hello,
Voici une façon (assez) classique de faire:
'
' déclaration sans dimensions, sans New
'
Dim machines() As Machine
'
' première allocation
'
ReDim machines(1)
Set machines(1) = New Machine
'
' puis pour toutes les suivantes
'
Dim idxNewInstance As Long
idxNewInstance = UBound(machines) + 1
ReDim Preserve machines(idxNewInstance)
Set machines(idxNewInstance) = New Machine
C'est une façon de faire, sure et propre, qui a en
plus le mérite de fonctionner parfaitement :-)
Note: le fait de dissocier la première allocation des autres
est juste pour s'éviter un test vérifiant que machines() a au
moins un élément.
"JLuc" a écrit dans le message de news:Bonjour les lecteurs,
VB6
Voila mon petit soucis :
J'ai créer un module de classe que j'ai appelé "Machine".
Dans le module du formulaire, je déclare une variable array "globale"de
cette façon :
Dim Machines(1) As New Machine
Ensuite, sur une sélection dans un menu, je veux ajouter une entrée. Donc
je fais :
ReDim Preserve Machines(UBound(Machines) + 1)
Et là, elle me mets :
Erreur de compillation. Tableau déjà dimentionné.
Où est ce que je commets une erreur ? J'avoue que je ne vois pas ce qui
cloche :/
Si quelqu'un pouvait me sortir cette épine du pied, il aurai droit à toute
ma reconnaissance
Hello,
Voici une façon (assez) classique de faire:
'
' déclaration sans dimensions, sans New
'
Dim machines() As Machine
'
' première allocation
'
ReDim machines(1)
Set machines(1) = New Machine
'
' puis pour toutes les suivantes
'
Dim idxNewInstance As Long
idxNewInstance = UBound(machines) + 1
ReDim Preserve machines(idxNewInstance)
Set machines(idxNewInstance) = New Machine
C'est une façon de faire, sure et propre, qui a en
plus le mérite de fonctionner parfaitement :-)
Note: le fait de dissocier la première allocation des autres
est juste pour s'éviter un test vérifiant que machines() a au
moins un élément.