Objet Class

Résolu
Signaler
Messages postés
23
Date d'inscription
lundi 20 décembre 2004
Statut
Membre
Dernière intervention
22 février 2005
-
Messages postés
4172
Date d'inscription
mercredi 30 juillet 2003
Statut
Membre
Dernière intervention
9 juin 2006
-
Bonjour,
J'ai un petit probleme de creation d'objet de class. J'ai commencé à en faire un mais j'ai vraiment du mal à comprendre comment on construit et surtout comment on utilise les property (let, get) et pareil pour les methodes.
Si vous pouviez m'expliquer ou me dire ou je peux aller chercher des tutoriaux.

Merci

Elpiojo

6 réponses

Messages postés
23
Date d'inscription
lundi 20 décembre 2004
Statut
Membre
Dernière intervention
22 février 2005

Bravo, c'est tout ! Ecris un bouquin ptit gars, t'es clair, concis, chose que je n'ai pu trouvé dans les bouquins et autres docs mis à ma disposition, la preuve j'ai résolu tous mes problémes, alors que ma demande elle, n'etait pas forcement claire.
Encore merci

Elpiojo
3
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 109 internautes nous ont dit merci ce mois-ci

Messages postés
4172
Date d'inscription
mercredi 30 juillet 2003
Statut
Membre
Dernière intervention
9 juin 2006
27
Pour faire une propriété, deux solutions :
1-Ajouter une variable public à ton module : Public NomProp As String par exemple
2- Utiliser Property Get/Let/set en déclarant une variable privée à ton module de classe:

Private pNomProp As String
Property Get NomProp() As String
NomProp = pNomProp
End Property
Property Let NomProp(ByVal Value As String)
pNomProp = Value
End Property

Dans les deux cas tu accèdes à la propriété depuis l'extérieur (un autre module ayant accès à une isntance de ta classe) de la même facon.

NomObjet.NomProp = "Hello"
Ou
Msgbox NomObjet.NomProp

Les différences :
1- ta propriété est forcément en lecture et en écriture.Si tu changes la valeur de la propriété, tu ne peux rien faire de valorisant dessus.
2- Ta propriété peut être en lecture et en écriture (Property Get ET Property Let), en lecture seule (Property Get uniquement), en ecriture seulement (Property Let seulement). De plus au changement de valeur de la propriété (dans le property Let, donc) tu peux ajouter du code. Modifer la valeur d'une autre propriété par exemple, ou générer un EVT de ton objet, etc ...
A noter l'existance de Property Set (en lieu et place de Property Let) qui s'emplois si le type de la propriété est un type objet. Cela donne alors :

Private pNomProp As TextBox
Property Get NomProp() As String
NomProp = pNomProp
End Property
Property Set NomProp(ByVal Value As TextBox)
Set pNomProp = Value
End Property

Pour finir, le type retourné par le Property Get doit être rigoureusement le même que le type du derneir argument du Property Let/Set, sinon VB ne compilera pas le module.
C'est OK ?
Si tu as besoin de plus d'explication ...

Christophe R
Messages postés
4172
Date d'inscription
mercredi 30 juillet 2003
Statut
Membre
Dernière intervention
9 juin 2006
27
Et je me suis planté dans le dernier code. C'est ceci ...

Private pNomProp As TextBox
Property Get NomProp() As TextBox
Set NomProp = pNomProp
End Property
Property Set NomProp(ByVal Value As TextBox)
Set pNomProp = Value
End Property

Comme cela, c'est mieux ...
Christophe R
Messages postés
298
Date d'inscription
lundi 14 juin 2004
Statut
Membre
Dernière intervention
5 juillet 2013
1
Bonjour
est-ce qu'on peut dire que Class ressemble à 'type' de quickbasic ?
Messages postés
4172
Date d'inscription
mercredi 30 juillet 2003
Statut
Membre
Dernière intervention
9 juin 2006
27
Je connais pas bien le QBasic, mais il exis teun Type en VB et je pense que c'est lui qsui resemble au Type de QBasic ! ! Les class sont de la programmation objet ! Qbasic, je doute fort qu'il soit de la partie !! Une classe c'est en quelque sorte un type, ormis le fait que chaque objet instancié à partir d'une classe supporte 2 types de membres : Les propriétés (Comme pour un type) mais aussi des méthodes (des fonctions ou procédures quoi !! Dans la class Form, tu as des propriétés Caption ou backcolor, mais tu as aussi des méthodes Load, refresh, etc ...



Christophe R
Messages postés
4172
Date d'inscription
mercredi 30 juillet 2003
Statut
Membre
Dernière intervention
9 juin 2006
27
Elpiojo < Merci du compliment ! Disons que j'adore la programmation (en général et en VB en particulier) et j'ai un petit passé comme formateur (vaguement encore actuellement), alors ça aide, je crois


Christophe R