J'utilise VB5 et je rencontre le (petit) probleme suivant :
Lorsque je crée des classes dans un projet et lorsque j'active l'explorateur
d'objet, je vois bien toutes mes classes crées ainsi que les méthodes,
propriétés et evenements associés (jusque là tout est normal). Par contre,
je vois aussi tous les éléments privés de la classe à savoir les variables,
les constante, les fonctions...etc. Bref on voit tout ce qui est déclaré en
"private".
Je trouve cela choquant et pas pratique du tout.
La question que je pose ici est donc de savoir s'il existe un moyen pour ne
faire apparaitre dans l'explorateur d'objet que les interfaces de la classe
crée , et non tout ce qui est privé à la classe.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Zoury
Salut! :O)
La question que je pose ici est donc de savoir s'il existe un moyen pour
ne
faire apparaitre dans l'explorateur d'objet que les interfaces de la
classe
crée , et non tout ce qui est privé à la classe.
Si par "explorateur d'objets" tu désigne l'intellisense, qui offre une liste des propriétés, méthodes, fonctions, etc. d'un objet, alors ce comportement est normal tant que ton projet utilise une classe interne, soit un module de classe dans un projet ActiveX Exe par exemple, ou encore un module classe publique se trouvant dans une ActiveX DLL non compilée qui serait référencée par ton ActiveX Exe..
Une "solution" à ce "problème", pourrait d'utiliser une nomenclature différente pour les propriétés privées de celles publiques..
par exemple la classe suivante : '*** ' CPersonne Option Explicit
Private m_sNom As String Private m_sPrenom As String Private m_dtNaissance As Date
Public Property Get Nom() As String Nom = m_sNom End Property
Public Property Let Nom(ByRef sNom As String) m_sNom = sNom End Property
Public Property Get Prenom() As String Prenom = m_sPrenom End Property
Public Property Let Prenom(ByRef sPrenom As String) m_sPrenom = sPrenom End Property
Public Property Get DateNaissance() As Date DateNaissance = m_dtNaissance End Property
Public Property Let DateNaissance(ByRef dtNaissance As Date) m_dtNaissance = dtNaissance End Property
Public Function Clone() As CPersonne
Dim p As CPersonne Set p = New CPersonne
With p .DateNaissance = m_dtNaissance .Nom = m_sNom .Prenom = m_sPrenom End With
Set Clone = p
End Function '***
ainsi toutes les propriétés privées de la classe commencent par "m_" et sont regroupées dans l'intellisense en plus de tous les avantages connus à utiliser une nomenclature prédéterminée lorsque tu codes. ;O)
Merci de poster les réponses au groupe afin d'en faire profiter à tous
Salut! :O)
La question que je pose ici est donc de savoir s'il existe un moyen pour
ne
faire apparaitre dans l'explorateur d'objet que les interfaces de la
classe
crée , et non tout ce qui est privé à la classe.
Si par "explorateur d'objets" tu désigne l'intellisense, qui offre une liste
des propriétés, méthodes, fonctions, etc. d'un objet, alors ce comportement
est normal tant que ton projet utilise une classe interne, soit un module de
classe dans un projet ActiveX Exe par exemple, ou encore un module classe
publique se trouvant dans une ActiveX DLL non compilée qui serait référencée
par ton ActiveX Exe..
Une "solution" à ce "problème", pourrait d'utiliser une nomenclature
différente pour les propriétés privées de celles publiques..
par exemple la classe suivante :
'***
' CPersonne
Option Explicit
Private m_sNom As String
Private m_sPrenom As String
Private m_dtNaissance As Date
Public Property Get Nom() As String
Nom = m_sNom
End Property
Public Property Let Nom(ByRef sNom As String)
m_sNom = sNom
End Property
Public Property Get Prenom() As String
Prenom = m_sPrenom
End Property
Public Property Let Prenom(ByRef sPrenom As String)
m_sPrenom = sPrenom
End Property
Public Property Get DateNaissance() As Date
DateNaissance = m_dtNaissance
End Property
Public Property Let DateNaissance(ByRef dtNaissance As Date)
m_dtNaissance = dtNaissance
End Property
Public Function Clone() As CPersonne
Dim p As CPersonne
Set p = New CPersonne
With p
.DateNaissance = m_dtNaissance
.Nom = m_sNom
.Prenom = m_sPrenom
End With
Set Clone = p
End Function
'***
ainsi toutes les propriétés privées de la classe commencent par "m_" et sont
regroupées dans l'intellisense en plus de tous les avantages connus à
utiliser une nomenclature prédéterminée lorsque tu codes. ;O)
La question que je pose ici est donc de savoir s'il existe un moyen pour
ne
faire apparaitre dans l'explorateur d'objet que les interfaces de la
classe
crée , et non tout ce qui est privé à la classe.
Si par "explorateur d'objets" tu désigne l'intellisense, qui offre une liste des propriétés, méthodes, fonctions, etc. d'un objet, alors ce comportement est normal tant que ton projet utilise une classe interne, soit un module de classe dans un projet ActiveX Exe par exemple, ou encore un module classe publique se trouvant dans une ActiveX DLL non compilée qui serait référencée par ton ActiveX Exe..
Une "solution" à ce "problème", pourrait d'utiliser une nomenclature différente pour les propriétés privées de celles publiques..
par exemple la classe suivante : '*** ' CPersonne Option Explicit
Private m_sNom As String Private m_sPrenom As String Private m_dtNaissance As Date
Public Property Get Nom() As String Nom = m_sNom End Property
Public Property Let Nom(ByRef sNom As String) m_sNom = sNom End Property
Public Property Get Prenom() As String Prenom = m_sPrenom End Property
Public Property Let Prenom(ByRef sPrenom As String) m_sPrenom = sPrenom End Property
Public Property Get DateNaissance() As Date DateNaissance = m_dtNaissance End Property
Public Property Let DateNaissance(ByRef dtNaissance As Date) m_dtNaissance = dtNaissance End Property
Public Function Clone() As CPersonne
Dim p As CPersonne Set p = New CPersonne
With p .DateNaissance = m_dtNaissance .Nom = m_sNom .Prenom = m_sPrenom End With
Set Clone = p
End Function '***
ainsi toutes les propriétés privées de la classe commencent par "m_" et sont regroupées dans l'intellisense en plus de tous les avantages connus à utiliser une nomenclature prédéterminée lorsque tu codes. ;O)