IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB 6 et antérieur Discussion :

Classes dans VB6


Sujet :

VB 6 et antérieur

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Ingénieur Génie Civil
    Inscrit en
    Août 2008
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur Génie Civil

    Informations forums :
    Inscription : Août 2008
    Messages : 27
    Points : 25
    Points
    25
    Par défaut Classes dans VB6
    Bonsoir,
    J'ai créer une première classe toute simple de type

    cPoint2D qui a 2 propriétés : X et Y

    Je viens de créer une nouvelle classe
    cNouvelle qui possède 3 propriété ,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    A as single
    B as double
    Pt as cPoint2D
    avec les routines
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Property Get Pt() As cPoint2D
        ' Propriété en lecture
        Pti = mPt
    End Property
    Property Let Pt(Point As cPoint2D)
        ' Propriété en écriture
        mPt = Point
    End Property
    C'est içi que réside le pb
    Dans un module j'écris
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
      dim Nouv as new cNouvelle
      Nouv.Pti.X=2
    Pas d'erreur à l'écriture mais si je lance l'exécution
    il y a une erreur au retour (dernière ligne) de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Property Get Pt() As cPoint2D
        ' Propriété en lecture
        Pti = mPt
    End Property
    1) Quelqu'un peut il m'explique comment créer un objet contenant un autre objet utilisateur?
    2) Dans le même style comment integrer un tableau dans une nouvelle classe d'utilisateur
    Merci par avance

  2. #2
    Membre expert
    Avatar de Delbeke
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    2 675
    Détails du profil
    Informations personnelles :
    Âge : 70
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 2 675
    Points : 3 696
    Points
    3 696
    Par défaut
    Il y a une erreur de varialbe dans ton Property get
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Property Get Pt() As cPoint2D
        ' Propriété en lecture
        'Pti = mPt
        Pt = mPt
    End Property
    Mais çà ne suffira pas à faire fonctionner ton code

    On utilise set, au lieu du let pour l'affectation de classes.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    Private Pt as New Nouvelle
    Property Get Pt() As cPoint2D
        Set Pt = mPt
    End Property
    Property Set Pt(Point As cPoint2D)
        ' Propriété en écriture
        Set mPt = Point
    End Property
    Ensuite dans ton code, il faudra créer une occurence de cPoint2D , tu affectes les deux membres, puis tu donnes l'occurence à manger a ta deuxieme classe

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Dim Pt New cPoint2D
    dim Nouv as new cNouvelle
    Pt.X = 5
    Pt.Y = 2
    Set Nouv.Pt = Pt
    En général, on ne demande de conseils que pour ne pas les suivre ou, si on les a suivis, reprocher à quelqu'un de les avoir donnés
    (ALEXANDRE DUMAS)

    N'hésitez pas à visiter ma page de contributions

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Ingénieur Génie Civil
    Inscrit en
    Août 2008
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur Génie Civil

    Informations forums :
    Inscription : Août 2008
    Messages : 27
    Points : 25
    Points
    25
    Par défaut Classes VB6
    Super ça marche.
    Je ne saisi pas bien la différence entre SET et LET
    Merci encore pour l'aide

  4. #4
    Modérateur
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2004
    Messages
    6 077
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2004
    Messages : 6 077
    Points : 17 171
    Points
    17 171
    Par défaut
    Super ça marche
    bouton alors.
    Soyez sympa, pensez -y
    Balises[CODE]...[/CODE]
    Balises[CODE=NomDuLangage]...[/CODE] quand vous mettez du code d'un autre langage que celui du forum ou vous postez.
    Balises[C]...[/C] code intégré dans une phrase.
    Balises[C=NomDuLangage]...[/C] code intégré dans une phrase quand vous mettez du code d'un autre langage que celui du forum ou vous postez.
    Le bouton en fin de discussion, quand vous avez obtenu l'aide attendue.
    ......... et pourquoi pas, pour remercier, un pour celui/ceux qui vous ont dépannés.
    👉 → → Ma page perso sur DVP ← ← 👈

  5. #5
    Expert confirmé
    Avatar de zazaraignée
    Profil pro
    Étudiant
    Inscrit en
    Février 2004
    Messages
    3 174
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2004
    Messages : 3 174
    Points : 4 085
    Points
    4 085
    Par défaut
    Citation Envoyé par Marmounet Voir le message
    Super ça marche.
    Je ne saisi pas bien la différence entre SET et LET
    Merci encore pour l'aide
    On utilise Let pour la déclaration d'une propriété.

    Exemple provenant de MSDN (en anglais) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    Dim CurrentColor As Integer
    Const BLACK = 0, RED = 1, GREEN = 2, BLUE = 3
     
    ' Set the pen color property for a Drawing package.
    ' The module-level variable CurrentColor is set to
    ' a numeric value that identifies the color used for drawing.
    Property Let PenColor(ColorName As String)
       Select Case ColorName   ' Check color name string.
          Case "Red"
             CurrentColor = RED   ' Assign value for Red.
          Case "Green"
             CurrentColor = GREEN   ' Assign value for Green.
          Case "Blue"
             CurrentColor = BLUE   ' Assign value for Blue.
          Case Else
             CurrentColor = BLACK   ' Assign default value.
       End Select
    End Property
     
    ' The following code sets the PenColor property for a drawing package
    ' by calling the Property let procedure.
     
    PenColor = "Red"
    On utilise Set pour affecter une valeur à une propriété. C'est ce qui permet d'affecter une nouvelle valeur à une propriété quand on utilise la classe depuis un autre module ou une autre classe...

    Autre exemple provenant aussi de MSDN (en anglais, toujours... puisque je n'ai que cette version et que j'y suis habituée...)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    ' The Pen property may be set to different Pen implementations.
    Property Set Pen(P As Object)
       Set CurrentPen = P   ' Assign Pen to object.
    End Property
    ou encore pour affecter une valeur d'objet à une variable objet. Petit exemple de code (de mon cru, celui-là) d'utilisation :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Option Explicit
    Private Fenetre As frmDialogue  ' une fenêtre déjà définie lors de la phase de développement
     
    Private Sub AfficherDialogueModale()
        Set Fenetre = New frmDialogue
        Fenetre.Capition = "Salut Marmounet !"
        Fenetre. Show mbModal
    End Sub
     
    Private Sub FermerDialogueModale()
        Fenetre.Hide   ' Masque la fenêtre mais elle reste ouverte
        Unload Fenetre ' Ferme la fenetre masquée
        Set Fenetre = Nothing ' Libère la mémoire
    End Sub

Discussions similaires

  1. Utilisation d'une classe C# dans VB6
    Par AventixSC dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 16/11/2012, 09h44
  2. Class dans une Class
    Par Math75 dans le forum C++
    Réponses: 27
    Dernier message: 06/08/2004, 17h38
  3. classe dans une classe ?
    Par tut dans le forum UML
    Réponses: 23
    Dernier message: 25/06/2004, 15h00
  4. [C#] [.NET] Lecture d'une classe dans un fichier
    Par niPrM dans le forum Windows Forms
    Réponses: 4
    Dernier message: 18/05/2004, 08h57
  5. Utilisation d'une dll écrite en delphi 5 dans VB6
    Par Jean-Louis dans le forum Langage
    Réponses: 4
    Dernier message: 05/08/2002, 09h19

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo