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
ReSalut, J'ai enfin tester ton code, et j'ai une erreur : 91 Variable objet ou Variable de bloc with non défini
Et ceci, lors de l'affectation de valeur dans ma variable :/ . Problème que je ne rencontre pas avec le code de Driss 8-o
Le 01/12/2006, Jean-marc a supposé :
"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
Hello,
Probablement une erreur de syntaxe puisque la solution
donnée par Driss et la mienne sont rigoureusement
identiques :o)
"JLuc" <ns.jeanluc.laurent@free.fr.ns> a écrit dans le message de news:
mn.10537d6ca5047e67.40692@free.fr.ns...
ReSalut,
J'ai enfin tester ton code, et j'ai une erreur :
91
Variable objet ou Variable de bloc with non défini
Et ceci, lors de l'affectation de valeur dans ma variable :/ . Problème
que je ne rencontre pas avec le code de Driss 8-o
Le 01/12/2006, Jean-marc a supposé :
"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.
ReSalut, J'ai enfin tester ton code, et j'ai une erreur : 91 Variable objet ou Variable de bloc with non défini
Et ceci, lors de l'affectation de valeur dans ma variable :/ . Problème que je ne rencontre pas avec le code de Driss 8-o
Le 01/12/2006, Jean-marc a supposé :
"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
JLuc
Salut Jean-marc,
Probablement une erreur de syntaxe puisque la solution donnée par Driss et la mienne sont rigoureusement identiques :o)
Pas completement : 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* Je voyais pas trop pourquoi, mais en enlevant les *Set* , ça marche
-- ____ ( O | O ) -- _oooO_ JLuc _Oooo_
O-O
Salut Jean-marc,
Probablement une erreur de syntaxe puisque la solution
donnée par Driss et la mienne sont rigoureusement
identiques :o)
Pas completement :
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*
Je voyais pas trop pourquoi, mais en enlevant les *Set* , ça marche
Probablement une erreur de syntaxe puisque la solution donnée par Driss et la mienne sont rigoureusement identiques :o)
Pas completement : 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* Je voyais pas trop pourquoi, mais en enlevant les *Set* , ça marche