Enregistrement d'un string dans un vecteur actionné par un bouton Command

Signaler
Messages postés
6
Date d'inscription
lundi 3 août 2009
Statut
Membre
Dernière intervention
29 mai 2011
-
Messages postés
14770
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
27 février 2021
-
Bonjour à tous,

Je voudrais que le texte de mon choix s'enregistre dans un vecteur lorsque j'appuie sur un bouton de commande.
Il n'y a pas de problème lorsqu'il s'agit d'y enregistrer du texte écrit à partir d'une Textbox ou un Combobox, mais je ne parviens pas à le faire à partir d'un Cmd. Je ne désire pas non plus le faire par un "OptionButton".
J'ai fait ceci jusqu'à présent, mais cela ne fonctionne pas :

Par ex :

Vecteur(indice).X = "Hello"

J'ai au préalable déclaré mon vecteur à l'aide d'un type où X est un string.

D'avance, merci pour votre réponse.

9 réponses

Messages postés
14770
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
27 février 2021
151
Bonjour,

fin de préciser ta demande, peux-tu nous montrer le contenu de ta classe (propriétés/attributs) ainsi que la déclaration de Vecteur ?

Je précise, si besoin, que si le type inclut dans ton "vecteur" est une structure, ton code ne peut pas fonctionner, seule les classes/interfaces sont assignables de cette manière.

En langage VB au moins, on a plus l'habitude d'utiliser les mors Collection ou Tableau (une collection est un tableau dynamique avec (principalement) les méthodes Add et Remove).

Mon site
Messages postés
6
Date d'inscription
lundi 3 août 2009
Statut
Membre
Dernière intervention
29 mai 2011

Ma déclaration de vecteur :
Type Onesupport
S As String
No As Integer
O As String
End Type

Global supportarray() As Onesupport

Le code associé à ma demande

Private Sub cmd_rotdown_Click()
supportarray(support_number).O = "Down"
End Sub


Voilà, j'espère avoir répondu à ta question, car je n'ai pas trop compris ta demande à propos des classes et attributs. De même que je ne connais pas les tableaux^^. Je suis débutant.


Merci pour ta réponse
Messages postés
14770
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
27 février 2021
151
Bonjour,

"cela ne fonctionne pas"
Une erreur ? Si oui, quel message ? Une réaction imprévue ? Laquelle ?

J'étais en mode .NET, pas VB6 :)

Ton code (celui que tu as montré) semble correct, je l'utilise (méthode) dans une application que j'ai en maintenance.

Mon site
Messages postés
6
Date d'inscription
lundi 3 août 2009
Statut
Membre
Dernière intervention
29 mai 2011

C'est une erreur type9 : Indice en dehors de la plage.

C'est seulement maintenant que je le remarque...

la variable (qui fait office d'indice) support_number s'incrémente grâce à un autre bouton de commande

[i]Private Sub Cmd_nextsupport_Click()

support_number = support_number + 1
...
End Sub/i

Je crains donc que la première valeur de l'indice soit le 0, raison pour laquelle rien ne pourrait être stocké dans le vecteur.

Il y a-t-il un moyen de forcer l'indice à commencer à 1 plutôt que 0?

J'espère m'expliquer assez bien.

Merci
Messages postés
14770
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
27 février 2021
151
Bonjour,

Habituellement, on préfère en programmation que les tableaux commencent à 0.
Sinon, pour initialiser ta variable "support_number" dans le Form_Load
Et pour faire un tableau qui commence à 1 (valable que pour VB6, VB.NET, ça commence forcément à 0)
Redim [Preserve] MonTableau(1 to Max)

Mon site
Messages postés
6
Date d'inscription
lundi 3 août 2009
Statut
Membre
Dernière intervention
29 mai 2011

Est-ce que je ne pourrais pas t'envoyer ma feuille de code en privé avec une description précise de ce que je désire?
Car je patauge un petit peu :-(

Dors et déjà merci pour tes réponses
Messages postés
14770
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
27 février 2021
151
Bonjour,

En général, le forum suffit pour résoudre le problème.

"Indice en dehors de la plage"
Le message est clair, Tu tente de taper hors du tableau.

As-tu espionné la valeur du tableau ? (Shift+F9, puis Ajouter)

Mon site
Messages postés
6
Date d'inscription
lundi 3 août 2009
Statut
Membre
Dernière intervention
29 mai 2011

Ca y est, trouvé!

J'avais bêtement oublié d'initialiser mon vecteur.

J'avais un RedimPreserve associé à bouton de commande,
mais pas de Redim dans le Form_Load...

Vraie erreur de débutant...

Tes explications m'ont guidé vers la solution.

Pratique le Shift+F9. Il me semble qu'il y a moyen d'espionner toutes les variables d'un seul coup, non?


Merci.
Messages postés
14770
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
27 février 2021
151
Bonjour,

Tu as plusieurs vues, La liste des variables locales et la liste des variables espionnées. (Voir dans la barre d'outils "debuggage", je crois).

Mon site