Pbm avec classe

Résolu
newgame
Messages postés
52
Date d'inscription
lundi 2 février 2009
Statut
Membre
Dernière intervention
24 juillet 2013
- 9 avril 2009 à 23:30
newgame
Messages postés
52
Date d'inscription
lundi 2 février 2009
Statut
Membre
Dernière intervention
24 juillet 2013
- 11 avril 2009 à 21:04
bonjour
je suis débutant en VB6 et j'ai besoin
de crée un pgm basic ou l'on remplit
la classe puis on affiche  résultat
moy dans un label après avoir cliquer sur un
bouton.
pour ne pas faire long  je bloque lors de l'appuis
du bouton de commande le résulta ne s'affiche pas dans le label et voilà mon pgm

ça c'est la création de la classe"etudiant"
'variables locales de stockage des valeurs de propriétés
Private mvarnom As String 'copie locale
Private mvarage As Integer 'copie locale
Private mvarmoy As Double 'copie locale
Private mvarcin As Integer 'copie locale
Public Sub calcul(n1 As Integer, c1 As Integer, n2 As Integer, c2 As Integer)
moy = (n1 * c1 + n2 * c2) / ((c1 + c2) / 2)
End Sub

Public Property Let cin(ByVal vData As Integer)
'utilisé lors de l'affectation d'une valeur à la propriété, du coté gauche de l'affectation.
'Syntax: X.cin = 5
    mvarcin = vData
End Property

Public Property Get cin() As Integer
'utilisé lors de la lecture de la valeur de la propriété, du coté droit de l'instruction.
'Syntax: Debug.Print X.cin
    cin = mvarcin
End Property

Public Property Let moy(ByVal vData As Double)
'utilisé lors de l'affectation d'une valeur à la propriété, du coté gauche de l'affectation.
'Syntax: X.moy = 5
    mvarmoy = vData
End Property

Public Property Get moy() As Double
'utilisé lors de la lecture de la valeur de la propriété, du coté droit de l'instruction.
'Syntax: Debug.Print X.moy
    moy = mvarmoy
End Property

Public Property Let age(ByVal vData As Integer)
'utilisé lors de l'affectation d'une valeur à la propriété, du coté gauche de l'affectation.
'Syntax: X.age = 5
    mvarage = vData
End Property

Public Property Get age() As Integer
'utilisé lors de la lecture de la valeur de la propriété, du coté droit de l'instruction.
'Syntax: Debug.Print X.age
    age = mvarage
End Property

Public Property Let nom(ByVal vData As String)
'utilisé lors de l'affectation d'une valeur à la propriété, du coté gauche de l'affectation.
'Syntax: X.nom = 5
    mvarnom = vData
End Property

Public Property Get nom() As String
'utilisé lors de la lecture de la valeur de la propriété, du coté droit de l'instruction.
'Syntax: Debug.Print X.nom
    nom = mvarnom
End Property

et ça le programme de form1
Set etud = New etudiant

Private Sub Command1_Click()
e.nom = Text1.Text
e.cin = CDbl(Text2.Text)
e.age = CDbl(Text3.Text)

End Sub

Private Sub Form_Load()
Dim e As etud

End Sub
merci d'avance

2 réponses

cs_Jack
Messages postés
14007
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
78
10 avril 2009 à 00:26
Salut
Tu as inversé le Dim et le Set de ta classe :
Le Dim dans la partie déclaration de ta forme
Le Set dans le Form_Load

+ Ta Sub Calcul ne sert à rien

De toute façon, tu ne dois même pas pouvoir faire tourner ça ... le compilateur doit le refuser.
Pourquoi veux-tu passer par une Classe pour calculer une moyenne ? drôle d'idée

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

<hr />Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
3
newgame
Messages postés
52
Date d'inscription
lundi 2 février 2009
Statut
Membre
Dernière intervention
24 juillet 2013

11 avril 2009 à 21:04
re,
j'ai inversé et rien ne s'est passé?
voila mon nouveau pgm:

Dim e As etudiant

Private Sub Command1_Click()
e.nom = Text1.Text
e.cin = CDbl(Text2.Text)
e.age = CDbl(Text3.Text)
e.moy = calcul(CDbl(Text4.Text), CDbl(Text5.Text), CDbl(Text6.Text), CDbl(Text7.Text))
Label8.Caption = e.moy
End Sub

Private Sub Form_Load()
Set etud = New etudiant
End Sub

petite question hors sujet:soudainement  le caractére de la discussion  est devenu  faible et presque illisible pourquoi?
0