Précédent   Forum des professionnels en informatique > Dotnet > Langages > VB.NET
VB.NET Forum d'entraide sur la programmation Visual Basic .NET. Avant de poster -> FAQ VB.NET, Articles VB.NET, Sources VB.NET
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 25/01/2012, 11h05   #1
Invité de passage
 
Homme
Inscription : janvier 2012
Messages : 48
Détails du profil
Informations personnelles :
Sexe : Homme

Informations forums :
Inscription : janvier 2012
Messages : 48
Points : 4
Points : 4
Par défaut mémorisation des valeurs d'entrée

Bonjour, voici mon programme(ci-dessous), tout d'abord l'utilisateur selectionne la branche n°1, rentre les caractéristiques correspondantes,puis clique sur le bouton branche suivante. Il faudrait alors revenir sur cette page pour renter les valeurs de la branche 2 en ayant gardé en mémoire les valeurs précédentes (branche 1). Ainsi, lorsqu'on clique sur le boutton Calcul, on obtiendra un résultat liant les deux branches qu'elles soient en série ou en parallèle. Mais mon probleme est bien celui de la mémorisation, je me débrouillerais seul l pour le reste.


Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
Private Sub ButtonCalcul2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ButtonCalcul2.Click
        If Verification() Then
            Me.LabelQmax.Text = "Q = " & CalculCaquot().ToString("0.0#") & " litres par seconde"
        Else
            Me.erreur2.Visible = True
        End If
    End Sub
 
    Function Verification() As Boolean
        Dim Bon As Boolean = True
        If Me.Labela2.Text Is Nothing Or Not IsNumeric(Me.Labela2.Text) Then
            MessageBox.Show("Entrez une valeur numérique pour a")
            Bon = False
        Else
            Select Case CType(Me.Labela2.Text, Double)
                Case Is < 0
                    MessageBox.Show("Entrez une valeur positive pour a")
                    Bon = False
            End Select
        End If
        If Me.Labelb2.Text Is Nothing Or Not IsNumeric(Me.Labelb2.Text) Then
            MessageBox.Show("Entrez une valeur numérique pour b")
            Bon = False
        Else
            Select Case CType(Me.Labelb2.Text, Double)
                Case Is < 0
                    MessageBox.Show("Entrez une valeur positive pour b")
                    Bon = False
 
                Case Is > 1
                    MessageBox.Show("Entrez une valeur entre 0 et 1 pour b")
                    Bon = False
            End Select
        End If
        If Me.LabelS2.Text Is Nothing Or Not IsNumeric(Me.LabelS2.Text) Then
            MessageBox.Show("Entrez une valeur numérique pour S")
            Bon = False
        Else
            Select Case CType(Me.LabelS2.Text, Double)
                Case Is < 0
                    MessageBox.Show("Entrez une valeur positive pour S")
                    Bon = False
            End Select
        End If
        If Me.LabelL.Text Is Nothing Or Not IsNumeric(Me.LabelL.Text) Then
            MessageBox.Show("Entrez une valeur numérique pour L")
            Bon = False
        Else
            Select Case CType(Me.LabelL.Text, Double)
                Case Is < 0
                    MessageBox.Show("Entrez une valeur positive pour L")
                    Bon = False
            End Select
        End If
        If Me.LabelC.Text Is Nothing Or Not IsNumeric(Me.LabelC.Text) Then
            MessageBox.Show("Entrez une valeur numérique pour C")
            Bon = False
        Else
            Select Case CType(Me.LabelC.Text, Double)
                Case Is < 0
                    MessageBox.Show("Entrez une valeur positive pour C")
                    Bon = False
                Case Is > 1
                    MessageBox.Show("Entrez une valeur entre 0 et 1 pour C")
                    Bon = False
            End Select
        End If
        If Me.LabelI.Text Is Nothing Or Not IsNumeric(Me.LabelI.Text) Then
            MessageBox.Show("Entrez une valeur numérique pour I")
            Bon = False
        Else
            Select Case CType(Me.LabelI.Text, Double)
                Case Is < 0
                    MessageBox.Show("Entrez une valeur positive pour I")
                    Bon = False
            End Select
        End If
        Return Bon
    End Function
 
    Function CalculCaquot() As Double
        Dim C As Double = Convert.ToDouble(Me.LabelC.Text)
        Dim S2 As Double = Convert.ToDouble(Me.LabelS2.Text)
        Dim I As Double = Convert.ToDouble(Me.LabelI.Text)
        Dim a2 As Double = Convert.ToDouble(Me.Labela2.Text)
        Dim b2 As Double = Convert.ToDouble(Me.Labelb2.Text)
        Dim L As Double = Convert.ToDouble(Me.LabelL.Text)
        Dim LabelQmax As Double
 
        LabelQmax = ((((a2 / 396) * (0.28 * (L / 100) ^ 0.84 * (S2 / 10000) ^ -0.42) ^ -b2) ^ (1 / (1 - 0.287 * b2))) * (C ^ (1 / (1 - 0.287 * b2))) * ((I / 100) ^ ((0.41 * b2) / (1 - 0.287 * b2))) * ((S2 / 10000) ^ ((0.95 - 0.507 * b2) / (1 - 0.287 * b2)))) * 1000
        Return LabelQmax
    End Function
 
 
 
End Class



Merci
babass-77 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/01/2012, 11h17   #2
Membre Expert
 
Avatar de hunteshiva
 
Homme eric Maitre
Étudiant
Inscription : février 2010
Messages : 954
Détails du profil
Informations personnelles :
Nom : Homme eric Maitre
Localisation : France, Gironde (Aquitaine)

Informations professionnelles :
Activité : Étudiant
Secteur : Industrie

Informations forums :
Inscription : février 2010
Messages : 954
Points : 1 166
Points : 1 166
Bonjour,

petite question, pourquoi mémoriser les valeurs précédentes?
la branche 1 et la branche 2 ne sont pas sur le même formulaire?
hunteshiva est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/01/2012, 11h26   #3
Membre Expert
 
Homme Sylvain Devidal
Chef de projets Générix
Inscription : février 2010
Messages : 1 062
Détails du profil
Informations personnelles :
Nom : Homme Sylvain Devidal
Âge : 33
Localisation : France, Rhône (Rhône Alpes)

Informations professionnelles :
Activité : Chef de projets Générix
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : février 2010
Messages : 1 062
Points : 1 515
Points : 1 515
Vu qu'il y a une liste déroulante pour choisir la branche avec laquelle faire des calculs, j'imagine qu'il veut vouloir faire les calculs après avoir saisi x branches.

Je commencerais par créer un objet "Branche", qui contient autant de propriétés qu'il y a de champs dans le formulaire.

Lors du click sur suivant, instanciation d'un nouvel objet Branche avec les valeurs du formulaire, et stockage dans une List<Branche> au niveau d'un objet global (la Form par exemple) à l'aide d'un maliste.Add(new Branche(textbox1.text, textbox2.text, etc.))

Ensuite, tu as :

list[i] = branche numéro i

Ainsi tu peux mémoriser autant de branches que tu veux.

Tu implémentes ensuite un CalculAvec(Branche b) et/ou un CalculAvec(int i)
=> Qui permet de faire les calculs entre la branche courante et la branche passée en paramètre (ou dont l'index est passé en paramètre).

Ou alors une méthode statique :
Calcul(Branche b1, Branche b2) qui permet de faire les calculs entre les deux branches passées en paramètres.

Méthode que tu appelles au moment du click sur le bouton Calcul.
StringBuilder est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/01/2012, 12h33   #4
Invité de passage
 
Homme
Inscription : janvier 2012
Messages : 48
Détails du profil
Informations personnelles :
Sexe : Homme

Informations forums :
Inscription : janvier 2012
Messages : 48
Points : 4
Points : 4
Par défaut probleme de comprehension

re bonjour, j'ai bien lu votre réponse, mais étant donné que je suis encore débutant sur VB, je n'ai pas tout compris. Pourriez m'éclairer davantage? Merci.
babass-77 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/01/2012, 19h33   #5
Membre du Club
 
Michel Devaux
Inscription : janvier 2010
Messages : 41
Détails du profil
Informations personnelles :
Nom : Michel Devaux

Informations forums :
Inscription : janvier 2010
Messages : 41
Points : 67
Points : 67
Personnellement, je voudrais bien mais je ne comprends pas la question.
qu'entends-tu par "mémoriser" ?
Est-ce que tu veux mémoriser les valeurs pour les retrouver au prochain démarrage du programme ?
mdevaux62 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/01/2012, 13h21   #6
Invité de passage
 
Homme
Inscription : janvier 2012
Messages : 48
Détails du profil
Informations personnelles :
Sexe : Homme

Informations forums :
Inscription : janvier 2012
Messages : 48
Points : 4
Points : 4
Bonjour, en fait je voudrais mémoriser les valeurs pour pouvoir les utiliser dans le calcul final, car notre page se re-initialise apres avoir entré la premiere serie de valeur.
babass-77 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/01/2012, 14h12   #7
Membre confirmé
 
Avatar de AcidLines
 
Homme Christophe
Développeur informatique
Inscription : février 2010
Messages : 179
Détails du profil
Informations personnelles :
Nom : Homme Christophe
Âge : 24
Localisation : France

Informations professionnelles :
Activité : Développeur informatique
Secteur : Santé

Informations forums :
Inscription : février 2010
Messages : 179
Points : 209
Points : 209
Envoyer un message via MSN à AcidLines
Bonjour,

Ce que stringBuilder t'explique, es qu'il faudrait que tu créer ta propre classe "Branche". Que pour chaque branche créée dans tes formulaires tu instancie cette classe dans un objet et que tu l'ajoute dans une List(of Branche).

Liste qui serait instancie au niveau des déclaration globales de ton application pour eviter que l'objet soit détruit.

Ta classe branche contiendrai donc comme il le dis toute les propriété relative à une branche. Tu devra ensuite écrire tes méthode d'accès au valeur de tes objets (accesseurs).

Par exemple :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
 
Public class Branche
 
Private idBranche as integer
Private surface as long
Private...
 
'Constructeur
sub new(byval idB as integer, byval surf as long,...)
idBranche = idB
surface = surf
End sub
 
'Accesseurs
function getBrancheId()
         return idBranche
end function
End class
ensuite dans ton code principal
Code :
1
2
3
4
5
6
7
8
9
10
 
'Déclaration global
dim listBranche as new list(of Branche)
dim maBranche as Branche
 
'une fois que ton formulaire est renseigne
maBranche = new Branche (idBr,surf)
listBranche.add(maBranche)
 
'etc...
Tu as apres des méthode sur ta list(of Branche), tu peux parcourir tout les objet de celle ci et pour chaque objet de la liste appeler les accesseur de ton objet Branche (modificateur ou autres fonctions de implémenter dans ta classe).
AcidLines est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/02/2012, 15h08   #8
Membre Expert
 
Homme Sylvain Devidal
Chef de projets Générix
Inscription : février 2010
Messages : 1 062
Détails du profil
Informations personnelles :
Nom : Homme Sylvain Devidal
Âge : 33
Localisation : France, Rhône (Rhône Alpes)

Informations professionnelles :
Activité : Chef de projets Générix
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : février 2010
Messages : 1 062
Points : 1 515
Points : 1 515
Réponse au message privé reçu :


Citation:
Envoyé par babass-77
Bonjour, suite à votre message:

"Vu qu'il y a une liste déroulante pour choisir la branche avec laquelle faire des calculs, j'imagine qu'il veut vouloir faire les calculs après avoir saisi x branches.

Je commencerais par créer un objet "Branche", qui contient autant de propriétés qu'il y a de champs dans le formulaire.

Lors du click sur suivant, instanciation d'un nouvel objet Branche avec les valeurs du formulaire, et stockage dans une List<Branche> au niveau d'un objet global (la Form par exemple) à l'aide d'un maliste.Add(new Branche(textbox1.text, textbox2.text, etc.))

Ensuite, tu as :

list[i] = branche numéro i

Ainsi tu peux mémoriser autant de branches que tu veux.

Tu implémentes ensuite un CalculAvec(Branche b) et/ou un CalculAvec(int i)
=> Qui permet de faire les calculs entre la branche courante et la branche passée en paramètre (ou dont l'index est passé en paramètre).

Ou alors une méthode statique :
Calcul(Branche b1, Branche b2) qui permet de faire les calculs entre les deux branches passées en paramètres.

Méthode que tu appelles au moment du click sur le bouton Calcul. "

et aux informations de "AcidLines" j'ai testé le code suivant (qui ne marche pas):

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
Public Class Form1
 
    Public Class Branche
 
        Private idBranche As Integer
        Private surface As Long
 
        'Constructeur
        Sub New(ByVal idB As Integer, ByVal surf As Long)
            idBranche = idB
            surface = surf
        End Sub
 
        'Accesseurs
        Function getBrancheId()
            Return idBranche
        End Function
    End Class
 
 
    'Déclaration global
    Dim listBranche As New List(Of Branche)
    Dim maBranche As Branche
 
    'une fois que ton formulaire est renseigne
maBranche = new Branche (idB,surf)
listBranche.add(maBranche)
 
End Class
Pouvez-vous me donner plus d'informations vu que je suis débutant en VB.

Merci.

Cordialement.
Merci.
Bonjour,

Tout d'abords, je ne suis pas la meilleure personne pour expliquer comment coder en VB.NET, puisque je n'ai absolument jamais écrit une ligne avec ce langage. Je répond aux questions dans cette partie du forum, car les principes de VB.NET sont les mêmes que C#, mais après, niveau syntaxe...

Ensuite, je préfère ne pas répondre aux questions dans les messages privés, ou alors je le fais en public comme ici : un forum, c'est fait pour partager avec tout le monde, pas échanger dans son coin.

Pour en revenir à la question, il faudrait être plus explicite quant à ce qui ne marche pas.

Dans un premier temps, je pense que la classe Branche n'a rien à faire dans la classe Form1, même si en soit ce n'est pas gênant.

Qu'est-ce qui ne marche pas ? Erreur de compilation ? D'exécution ?

Aussi, le code est incomplet, pour le moment, on se contente de mémoriser une branche...

Reste ensuite à faire la comparaison, je ne vois rien dans votre code de plus que ce qui a été proposé par AcidLines...
StringBuilder est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/02/2012, 08h42   #9
Membre confirmé
 
Avatar de AcidLines
 
Homme Christophe
Développeur informatique
Inscription : février 2010
Messages : 179
Détails du profil
Informations personnelles :
Nom : Homme Christophe
Âge : 24
Localisation : France

Informations professionnelles :
Activité : Développeur informatique
Secteur : Santé

Informations forums :
Inscription : février 2010
Messages : 179
Points : 209
Points : 209
Envoyer un message via MSN à AcidLines
Ce n'est qu'un exemple par rapport à ce que tu as fait. Dans mon exemple j'ai oublier de mettre "as integer" lors de la déclaration de ma fonction de classe. En dehors de cela la "sauvegarde" des objets se fait sur les évènements de ta form. (Ce que je n'ai pas mis dans mon exemple, je suis fautif ?)

Et en effet, il serai préférable d'extraire ta classe dans un fichier class. Non pas que ça ne fonctionne pas ainsi, mais par soucis de visibilité et compréhension du code.

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
 
Public Class Form1
Public Class Branche
Private idBranche As Integer
Private surface As Long
'Constructeur
Sub New(ByVal idB As Integer, ByVal surf As Long)
idBranche = idB
surface = surf
End Sub
'Accesseurs
Function getBrancheId() As Integer
Return idBranche
End Function
End Class
'Déclaration global
Dim listBranche As New List(Of Branche)
Dim maBranche As Branche
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
'une fois que ton formulaire est renseigne
maBranche = New Branche(0, 42)
listBranche.Add(maBranche)
End Sub
End Class
AcidLines est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/02/2012, 13h59   #10
Invité régulier
 
Homme
Étudiant
Inscription : janvier 2012
Messages : 44
Détails du profil
Informations personnelles :
Sexe : Homme

Informations professionnelles :
Activité : Étudiant
Secteur : Bâtiment Travaux Publics

Informations forums :
Inscription : janvier 2012
Messages : 44
Points : 9
Points : 9
Que signifie cette ligne svp :

Code :
maBranche = New Branche(0, 42)
C'est surtout (0,42) que je ne comprend pas.

Et où sont stockées les valeurs, comment je fais pour les réutiliser?
Merci
doudou47 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/02/2012, 08h49   #11
Membre confirmé
 
Avatar de AcidLines
 
Homme Christophe
Développeur informatique
Inscription : février 2010
Messages : 179
Détails du profil
Informations personnelles :
Nom : Homme Christophe
Âge : 24
Localisation : France

Informations professionnelles :
Activité : Développeur informatique
Secteur : Santé

Informations forums :
Inscription : février 2010
Messages : 179
Points : 209
Points : 209
Envoyer un message via MSN à AcidLines
Se sont les valeur nécessaire à la création de ton objet Branche :
0 : Id
42 : la surface.

ensuite pour les connaitre une fois ton objet créer tu appel les méthode créés dans ta classe Branche ce qui peut donner :
Code :
1
2
3
 
maBranche.getBrancheId() 'renvoi 0
maBranche.getBrancheSurface() 'renvoi 42
Je pense qu'il faudrait que tu regarde des cours sur la POO..
AcidLines est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/02/2012, 09h40   #12
Membre à l'essai
 
Homme
Étudiant
Inscription : juin 2011
Messages : 46
Détails du profil
Informations personnelles :
Sexe : Homme

Informations professionnelles :
Activité : Étudiant
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : juin 2011
Messages : 46
Points : 22
Points : 22
J'ai un peu peur de dire une connerie étant donné que je ne suis pas un pro du VB.net mais pourquoi ne pas faire un tableau de structure ?
Il est débutant et je suppose que la notion d'objet le dépasse un peu pour le moment.

Pour le tableau de structure, rien de très compliqué:

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
 
Public Class Form1
    'Déclare une structure Film
    Structure Film
        Dim NomFilm As String
        Dim DateFilm As Date
    End Structure
 
    'Déclare un tableau de Film
    Dim tTab As Film()
 
    Private Sub butValiderForm_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles butValiderForm.Click
        'Dans la case 0 du tableau de Film, on attribu un nom et une date
        tTab(0).NomFilm = "Rambo"
        tTab(0).DateFilm = #1/31/2012 6:30:00 AM#
 
        'Ici, c'est dans la case 1
        tTab(1).NomFilm = "Le petit chaperon rouge"
        tTab(1).DateFilm = #5/12/2001 13:00:00 PM#
    End Sub
End Class
Les changements à faire pour ton application sont vraiment minimes, il faut juste que tu gères un "index" pour gérer quelle case du tableau tu pointes.

PS: Le titre de ton topic est vraiment bizarre.
ZoomBox est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/02/2012, 09h27   #13
Invité de passage
 
Homme
Inscription : janvier 2012
Messages : 48
Détails du profil
Informations personnelles :
Sexe : Homme

Informations forums :
Inscription : janvier 2012
Messages : 48
Points : 4
Points : 4
Bonjour, en réponse à AcidLines, je crois que je me suis mal fait comprendre, je voudrais que ce soit l'utilisateur qui définisse la valeur de la surface et le numéro de la branche alors que vous, vous les rentrez directement dans votre programme.
Comment pourrais-je faire dans ce cas ?
Merci
babass-77 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/02/2012, 10h10   #14
Membre confirmé
 
Avatar de AcidLines
 
Homme Christophe
Développeur informatique
Inscription : février 2010
Messages : 179
Détails du profil
Informations personnelles :
Nom : Homme Christophe
Âge : 24
Localisation : France

Informations professionnelles :
Activité : Développeur informatique
Secteur : Santé

Informations forums :
Inscription : février 2010
Messages : 179
Points : 209
Points : 209
Envoyer un message via MSN à AcidLines
Pour le champs Id tu l'incrémente à chaque nouvelle branche, et le reste tu met ton controle.text par exemple ou autre. Je rappel que ce n'est qu'un exemple, à toi de construire l'implémentation de tes classes.

http://xo.developpez.com/tutoriel/vb.net/poo/
AcidLines est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/02/2012, 10h20   #15
Invité de passage
 
Homme
Inscription : janvier 2012
Messages : 48
Détails du profil
Informations personnelles :
Sexe : Homme

Informations forums :
Inscription : janvier 2012
Messages : 48
Points : 4
Points : 4
Bonjour,

Je suis en train de tester la méthode donnée par ZoomBox concernant le tableau de structure, le problème est que j'aimerais que ce soit l'utilisateur qui entre lui-même la valeur de la surface (textbox) et le numéro de la branche (NumericUpDown). Je ne sais pas ce que je dois mettre pour les définir dans le programme:

tTab(1).idBranche = idB.(je ne vois pas ce qu'il faut mettre ici) ?
tTab(1).surface = surf.Text


Et en ce qui concerne la seconde branche, je ne vois pas comment mes objets "idB" et "surf" une deuxième fois, on m'a parlé d'instanciation, je vois ce que c'est mais je ne sais pas comment l'utiliser.

tTab(2).idBranche =
tTab(2).surface =

Pouvez-vous m'aider?

Merci
babass-77 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/02/2012, 10h45   #16
Membre confirmé
 
Avatar de AcidLines
 
Homme Christophe
Développeur informatique
Inscription : février 2010
Messages : 179
Détails du profil
Informations personnelles :
Nom : Homme Christophe
Âge : 24
Localisation : France

Informations professionnelles :
Activité : Développeur informatique
Secteur : Santé

Informations forums :
Inscription : février 2010
Messages : 179
Points : 209
Points : 209
Envoyer un message via MSN à AcidLines
Attention, ne mélange pas le tableau de strucuture avec ma méthode par objet. Pour la méthode de ZoomBox :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
 
'A chaque fois que tu ajoute une Branche :
Public class form1
 
Dim numEntreeStructure as integer =0
 
Structure Branche
         Dim surface as integer
         'Ajoute les autres propriété de ta structure
End Structure
 
Dim tBranche as Branche()
 
Private Sub butValiderForm_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles butValiderForm.Click
 
        'On ajoute la première entrée à l'emplacement numEntreeStructure (0 la première fois.
        tBranche(numEntreeStructure).surface = TBX_surface.text 'ton controle textbox
 
      'On incrémente le numéro d'entrée pour la prochaine validation du formulaire.
      numEntreeStructure = numEntreeStructure +1
End Sub
End Class
Pense qu'en faisant de cette manière tu obtiens un tableau à autant de colonne que de propriété.

dans mon exemple tBranche ressemblerait à sa en Mémoire : (A imaginer sous forme de tableau.)

(numEntreeStructure) - Surface
(0) - Valeur de Tbx_surface.text
(1) - 12
(2) - 5
... ...
AcidLines est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/02/2012, 11h24   #17
Invité de passage
 
Homme
Inscription : janvier 2012
Messages : 48
Détails du profil
Informations personnelles :
Sexe : Homme

Informations forums :
Inscription : janvier 2012
Messages : 48
Points : 4
Points : 4
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
 
    Dim numEntreeStructure As Integer = 0
 
    Structure Branche
        Dim surface As Integer
    End Structure
 
    Dim tBranche As Branche()
 
    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
 
        'On ajoute la première entrée à l'emplacement numEntreeStructure (0 la première fois)
        tBranche(numEntreeStructure).surface = TBX_surface.Text 'ton controle textbox
 
        'On incrémente le numéro d'entrée pour la prochaine validation du formulaire.
        numEntreeStructure = numEntreeStructure + 1
    End Sub
End Class
J'ai un problème lorsque je clique sur le bouton "suivant" (button2) au niveau de cette ligne:
Code :
tBranche(numEntreeStructure).surface = TBX_surface.Text
le message d'erreur est le suivant:
Citation:
La référence n'est pas définie à une instance d'un objet
Pourtant j'ai fait attention au nom des différents objets.

Merci.
babass-77 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/02/2012, 11h44   #18
Membre confirmé
 
Avatar de AcidLines
 
Homme Christophe
Développeur informatique
Inscription : février 2010
Messages : 179
Détails du profil
Informations personnelles :
Nom : Homme Christophe
Âge : 24
Localisation : France

Informations professionnelles :
Activité : Développeur informatique
Secteur : Santé

Informations forums :
Inscription : février 2010
Messages : 179
Points : 209
Points : 209
Envoyer un message via MSN à AcidLines
Code :
1
2
Dim tBranche As new Branche()
Un oubli de ma part (On déclare un NOUVEAU tableau de structure Branche)
AcidLines est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/02/2012, 12h47   #19
Invité de passage
 
Homme
Inscription : janvier 2012
Messages : 48
Détails du profil
Informations personnelles :
Sexe : Homme

Informations forums :
Inscription : janvier 2012
Messages : 48
Points : 4
Points : 4
Merci pour votre aide, mais malheureusement, j'ai toujours une erreur que je ne comprend pas. J'ai bien rajouté le "new" mais maintenant on me dit:

Citation:
Erreur 1 La structure 'WindowsApplication1.Form3.Branche' ne peut pas être indexée, car elle n'a pas de propriété par défaut.
Cette erreur correspond à cette ligne:

Code :
 tBranche(numEntreeStructure).surface = TBX_surface.Text
Pouvez-vous m'aider une nouvelle fois?

Merci.
babass-77 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/02/2012, 14h09   #20
Membre à l'essai
 
Homme
Étudiant
Inscription : juin 2011
Messages : 46
Détails du profil
Informations personnelles :
Sexe : Homme

Informations professionnelles :
Activité : Étudiant
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : juin 2011
Messages : 46
Points : 22
Points : 22
J'ai bidouillé une solution, mais il doit y avoir moyen de trouver dans faire de redim (ArrayList ?):

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Public Class Form1
    Dim numEntreeStructure As Integer = 0
 
    Public Structure Branche
        Dim pSurface As String
    End Structure
 
    Dim tBranche() As Branche
 
    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
        ReDim Preserve tBranche(numEntreeStructure) 'Redimensionne le tableau en gardant ce qu'il y a dedans
        tBranche(numEntreeStructure).pSurface = TBX_surface.Text
        numEntreeStructure = numEntreeStructure + 1
    End Sub
End Class
Ou alors te plonger dans l'Objet
ZoomBox est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 00h02.


 
 
 
 
Partenaires

Hébergement Web