Objet Class

Résolu
cs_ElPiojo Messages postés 23 Date d'inscription lundi 20 décembre 2004 Statut Membre Dernière intervention 22 février 2005 - 28 janv. 2005 à 10:09
crenaud76 Messages postés 4172 Date d'inscription mercredi 30 juillet 2003 Statut Membre Dernière intervention 9 juin 2006 - 28 janv. 2005 à 21:29
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

cs_ElPiojo Messages postés 23 Date d'inscription lundi 20 décembre 2004 Statut Membre Dernière intervention 22 février 2005
28 janv. 2005 à 13:37
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
crenaud76 Messages postés 4172 Date d'inscription mercredi 30 juillet 2003 Statut Membre Dernière intervention 9 juin 2006 29
28 janv. 2005 à 13:23
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
0
crenaud76 Messages postés 4172 Date d'inscription mercredi 30 juillet 2003 Statut Membre Dernière intervention 9 juin 2006 29
28 janv. 2005 à 13:28
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
0
cs_lacomm Messages postés 298 Date d'inscription lundi 14 juin 2004 Statut Membre Dernière intervention 5 juillet 2013 1
28 janv. 2005 à 14:31
Bonjour
est-ce qu'on peut dire que Class ressemble à 'type' de quickbasic ?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
crenaud76 Messages postés 4172 Date d'inscription mercredi 30 juillet 2003 Statut Membre Dernière intervention 9 juin 2006 29
28 janv. 2005 à 21:22
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
0
crenaud76 Messages postés 4172 Date d'inscription mercredi 30 juillet 2003 Statut Membre Dernière intervention 9 juin 2006 29
28 janv. 2005 à 21:29
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
0