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 :

La POO sur VB6


Sujet :

VB 6 et antérieur

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau candidat au Club
    Inscrit en
    Février 2008
    Messages
    1
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 1
    Par défaut La POO sur VB6
    j'aimerais que quelqu'un me dise comment faire une class en visual basic en me la comparant avec une en c++ car je ne suis pas tres sur de comprend le concept objets en vb6.

    de plus jaimerais que vous me dite pourquoi que c'est ID que je dois mettre pour y mettre une valeur et non lID.

    De plus comment je pourrais passer des parametre dans le constructeur. J'aimerais aussi savoir pourquoi je ne peu pas mettre de nothing pour le constructeur.

    Et pour finir j'aimerais bien que vous me dite la difference entre sub et function (est-ce que c'est des procédure pour sub et fonction pour function).

    Merci d'avance d'aider un débutant d'une semaine avec VB6, je vous en suis éternellement reconnaissant.

    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
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
     
    Option Explicit
    'Partie déclarative
    Private lID As Long
    Private sNom As String
    Private sInformation As String
    'Partie procédurale
    Public Property Let ID(ByVal pID As Long)
      Set Me.ID = pID
    End Property
    Public Property Get ID() As Long
       ID = lID
    End Property
    Public Property Let Nom(ByVal pNom As String)
      sNom = pNom
    End Property
    Public Property Get Nom() As String
      Nom = sNom
    End Property
    Public Property Let Information(ByVal pInformation As String)
      Set sInformation = pInformation
    End Property
    Public Property Get Information() As String
      Information = sInformation
    End Property
    Public Sub SetTableStage(ByRef pID As Long, ByRef pNom As String, ByRef pInfornation As String)
      lID = pID
      sNom = pNom
      sInformation = pInformation
    End Sub
    'Constructeur par défaut
    Private Sub Class_Initialize()
      Me.ID = Nothing
      Me.Nom = Nothing
      Me.Information = Nothing
    End Sub
    'Destructeur
    Private Sub Class_Terminate()
    End Sub

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

    Informations forums :
    Inscription : Juillet 2006
    Messages : 2 675
    Par défaut
    Voici ton code corrigé avec quesqies remarques en plus
    qui devraient t'aider à comprendre.
    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
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    Option Explicit
    'Partie déclarative
    Private lID As Long
    Private sNom As String
    Private sInformation As String
    'Partie procédurale
    Public Property Let ID(ByVal pID As Long)
      'Set Me.ID = pID   'le set est réservé aux variables de type objet
      lID  = pID
    End Property
    Public Property Get ID() As Long
       ID = lID
    End Property
    Public Property Let Nom(ByVal pNom As String)
      sNom = pNom
    End Property
    Public Property Get Nom() As String
      Nom = sNom
    End Property
    Public Property Let Information(ByVal pInformation As String)
      'Set sInformation = pInformation
      sInformation = pInformation
    End Property
    Public Property Get Information() As String
      Information = sInformation
    End Property
    Public Sub SetTableStage(ByRef pID As Long, ByRef pNom As String, ByRef pInfornation As String)
      lID = pID
      sNom = pNom
      sInformation = pInformation
    End Sub
    'Constructeur par défaut
    Private Sub Class_Initialize()
     ' à ce niveau l'objet n'est pas encore construit
     'on ne peut pas encore le référencer par me
     'par contre, on peut accèder aux variables internes
      'Me.ID = Nothing  'nothing est réservé aux objets et une variable de type long n'est pas un
      'Me.Nom = Nothing
      'Me.Information = Nothing
     lID = 0
     sNom = ""
     sInformation = ""
    End Sub
    'Destructeur
    Private Sub Class_Terminate()
    End Sub

  3. #3
    Expert confirmé
    Avatar de bidou
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mai 2002
    Messages
    3 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Transports

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 055
    Par défaut
    Le concept objet est partiel en VB6 et tu n'as pas accès au constructeur donc tu ne peux pas lui passer de paramètre, a fortiori Nothing.

    Sub => Procédure
    Function => Fonction

    N.B :Ca n'as pas de sens
    Tu ne peux affecter un type valeur avec 'Set' instruction d'affectation objet

  4. #4
    Membre Expert
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2006
    Messages
    1 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Argentine

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

    Informations forums :
    Inscription : Octobre 2006
    Messages : 1 173
    Par défaut
    Je ne suis par ailleur pas certain de comprendre l'utilité d'une affectation à nothing des attributs d'un objet dans le constructeur.

    Pour diaod8, en VB6 seules les variables objet s'affectent avec l'opérateur "Set", les autres n'admettent pas de préfixe :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Set objet = nothing
    machaine = vbnullstring
    Les long, integer, strings ... et autres types communs ne sont pas objet, par exemple.

    Enfin, pour le problème du constructeur personnellement je le "contourne" en créant les miens systématiquement. Certes ce n'est pas aussi commode que ceux de java par exemple car ils ne sont pas appelés automatiquement mais cela fait l'affaire.

Discussions similaires

  1. Datagrid sur VB6
    Par jujujulien dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 18/05/2007, 22h22
  2. lié le poste à l'application sur VB6
    Par bhosni2000 dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 18/04/2007, 18h05
  3. information sur vb6 et un monnayeur
    Par josémaria dans le forum VB 6 et antérieur
    Réponses: 6
    Dernier message: 22/03/2007, 11h20
  4. [POO] Impact de la POO sur la mémoire
    Par barok dans le forum Langage
    Réponses: 3
    Dernier message: 15/03/2007, 10h09

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