Partage de tableau dans une Form

Résolu
cs_titicar Messages postés 181 Date d'inscription jeudi 30 mai 2002 Statut Membre Dernière intervention 19 août 2012 - 7 nov. 2007 à 20:11
cs_titicar Messages postés 181 Date d'inscription jeudi 30 mai 2002 Statut Membre Dernière intervention 19 août 2012 - 6 juil. 2008 à 23:36
Bonjour,

J'ai un soucis de 'partage' de variable. En effet, je voudrais placer une déclaration du genre 'Public Tableau() As Byte', mais dans une Form. Ce qui est impossible. Je veux que ce tableau soit partagé car je dois le modifier par une procédure d'un autre module.
Je ne peux pas non plus le déclarer en Global dans un module car il doit être associé à la Form, et cette dernière sera instanciée sans doute plusieurs fois dans la même 'session' de mon programme.

Quelqu'un aurait-il une idée?

titicar

8 réponses

Kristof_Koder Messages postés 918 Date d'inscription vendredi 3 août 2007 Statut Membre Dernière intervention 27 octobre 2008 10
7 nov. 2007 à 21:16
Charles Racaud < Ca, il faudra que tu poses la question aux développeurs de VB6 ! Il est impossible de mettre un tableau, un declare, un type en tant que membre public dans un module objet (=form + class) !

titicar < tu peux contourner cette limitation de VB6 en déclarant ton tableau en Private dans ta form et en ajoutant une propriété (en Get et en Set si besoin) pour accéder aux items de ton tableau:

Private Tableau() As Byte

Public Property Get Item(ByVal Idx As Long) As Byte
Item = Tableau(Idx)
End Property

Public Property Let Item(ByVal Idx As Long, ByVal Value As Byte)
Tableau(Idx) = Value
End Property

Et tu utilises comme ceci :

Form1.Item(1) = 10
MsgBox Form1.Item(1)

A noter qu'il faudra ajouter des protection dans les property Get/Set au cas ou l'Idx serait en dehors de la plage du tableau
3
Utilisateur anonyme
7 nov. 2007 à 20:55
Salut,

Pourquoi est-il impossible de déclarer en public un tableau dans une form ?
TaForm.TonTableau(id)...

__________
Kenji
(
Nouveau forum VBA/Office
0
Utilisateur anonyme
7 nov. 2007 à 21:27
Kristof, (salut), en effet, il nous jette au moment de l'exécution.
L'habitude du dotnet

__________
Kenji
(
Nouveau forum VBA/Office
0
cs_titicar Messages postés 181 Date d'inscription jeudi 30 mai 2002 Statut Membre Dernière intervention 19 août 2012
8 nov. 2007 à 18:03
Bien vu Kristof !
C'est tout bête et je n'y avais même pas pensé !
... Y a des fois où l'on ne voit pas la plus simple évidence...

Merci !

titicar
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
themuton Messages postés 3 Date d'inscription jeudi 5 octobre 2006 Statut Membre Dernière intervention 10 février 2009
21 févr. 2008 à 11:05
Bonjour,
Ma question est la meme que titicar a une difference pres : je voudrais que mon tableau soit redimensionnable par un Redim Preserve... or ceci m'empeche d'utiliser ta methode Kristof...

Quelqu'un aurait-il une methode de contournement svp ?

Merci d'avance !

Dans la vie il y a 3 types de personnes : celles qui savent compter, et celles qui ne savent pas.
0
Kristof_Koder Messages postés 918 Date d'inscription vendredi 3 août 2007 Statut Membre Dernière intervention 27 octobre 2008 10
21 févr. 2008 à 11:17
Pourquoi ca ?
0
themuton Messages postés 3 Date d'inscription jeudi 5 octobre 2006 Statut Membre Dernière intervention 10 février 2009
21 févr. 2008 à 11:35
Merci j'ai contourne en mettant betement mes array dans un module a part...
J'obtenais un message d'erreur a cause des Redim...

Bonne journee !

Dans la vie il y a 3 types de personnes : celles qui savent compter, et celles qui ne savent pas.
0
cs_titicar Messages postés 181 Date d'inscription jeudi 30 mai 2002 Statut Membre Dernière intervention 19 août 2012
6 juil. 2008 à 23:36
themuton : Je retombe ici par hasard. C'est vrai que les Redim ne fonctionnent pas. Faut que je regarde ton 'bettement array'... que je n'utilise pas.
Au fait, tu n'as pas mentionné le 3ème type de personne :-)

titicar
0
Rejoignez-nous