Jayme65
Messages postés60Date d'inscriptionlundi 23 avril 2007StatutMembreDernière intervention26 mars 2019
-
20 mars 2011 à 01:48
NHenry
Messages postés15113Date d'inscriptionvendredi 14 mars 2003StatutModérateurDernière intervention22 avril 2024
-
25 mars 2011 à 08:43
Bonjour,
Je suis débutant (donc, merci d'avance pour votre compréhension ;)
Voila, j'ai jusqu'à présent programmé en ActionScript, et je veux porter mon application en VB.
En ActionScript, je pouvais déclarer dynamiquement une variable et lui donnant une valeur extraite d'une autre variable (concaténation).
Je lisais un fichier XML comprenant: 'nom de l'article', 'valeur', 'poids', 'couleur',...
et je pouvais, à la volée, créer un tableau (à moins que ce ne soit un objet avec des propriétés?!), dont l'écriture se faisait ainsi:
* la variable 'article' récupère la valeur venant d'un fichier xml
article = this.firstChild.attributes.name (ex: article= avion)
* cette valeur est alors utilisée dans la déclaration d'un nouvel objet, portant comme nom la valeur de cette variable
_root[article] = {poids:xmlpoids, couleur:xmlcouleur, prix:xmlprix};
Sur Flash, cette concaténation se faisait par l'usage des [] autour du nom.
Quand on agit de cette façon dans Flash, que ce soit pour lire ou écrire, le texte compris entre les [] est alors évalué comme étant le nom de l'objet/variable/tableau
Remarqué également qu'au passage, des propriétés sont créées (poids,couleur,prix) et remplies des valeurs venant du fichiers XML
Donc..;-) comment puis arriver à cette même "souplesse" avec VB: créer un objet dynamiquement, en le nommant (en l'évaluant) à partir d'une valeur d'une autre variable...et en lui créant/attribuant des propriétés au passage?!
(et si ce n'est pas possible, comment dois-je m'y prendre autrement?)
Je vous remercie de m'avoir lu, j'espère que j'ai été clair...et d'avance merci pour votre aide!
A voir également:
Nommer une variable à partir de la valeur d'une autre variable (évaluer, concaté
Jayme65
Messages postés60Date d'inscriptionlundi 23 avril 2007StatutMembreDernière intervention26 mars 20192 25 mars 2011 à 00:10
NHenry,
Merci pour ta réponse, qui m'a aiguillé sur la bonne voie.
Voici le code utilisé...si cela devait en interesser d'autres.
Merci
Private Class Data
Public Property Poids As Decimal
Public Property Couleur As String
Public Property Prix As Decimal
End Class
Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
Dim d As New Dictionary(Of String, Data)
d.Add("avion", New Data With {.Poids 15, .Couleur "Bleu", .Prix = 15000})
d.Add("vélo", New Data With {.Poids 0.02, .Couleur "Rouge", .Prix = 7})
MessageBox.Show(d("vélo").Poids)
End Sub