cs_lacomm
Messages postés298Date d'inscriptionlundi 14 juin 2004StatutMembreDernière intervention 5 juillet 2013
-
27 févr. 2007 à 14:46
cs_lacomm
Messages postés298Date d'inscriptionlundi 14 juin 2004StatutMembreDernière intervention 5 juillet 2013
-
27 févr. 2007 à 15:20
Hello
Comment faire pour que ca marche ? J'ai un texte que je découpe en mots, j'ai une classe ClsMot qui contient des propriétés sMot (le mot lui-même) et longmot, la longueur du mot. Si j'obtiens bien le mot suivant à chaque coupure, par contre, je n'ai toujours que la longueur du premier mot.
texte = salut albert
sMot = salut puis albert
longmot = 5 puis 5
FORM:
Private Sub cmd_click()
Dim iLmot as integer:Dim texte as string:Dim mot () as string
texte =Text1.text
mot ()= Split(texte," ")
for i = 0 to Ubound (mot)
Set oMot = New ClsMot
oMot.sMot=mot(i)
iLmot=oMot.longmot
next i
end sub
CLSMOT
Private mvarmot As String 'local copy
Private mvarlongmot As Integer 'local copy
Public Property Let longmot(ByVal vData As Integer)
mvarlongmot = vData
End Property
Public Property Get longmot() As Integer
'reste toujours sur le premier mot
longmot = Len(mot(i))
End Property
Public Property Let sMot(ByVal vData As String)
mvarmot = vData
End Property
Public Property Get sMot() As String
sMot = mvarmot
End Property
Finalement en ajoutant une fonction dans la classe ca marche:
Public Function fLongmot(sMot As String) As Integer
fLongmot = Len(sMot)
End Function
Mais je comprends pas pourquoi ca marche avec une fonction et pas une propriété
jrivet
Messages postés7392Date d'inscriptionmercredi 23 avril 2003StatutMembreDernière intervention 6 avril 201260 27 févr. 2007 à 15:03
Re,
je viens d'essayer ceci et ca ne me pose pas de problème =)> ou alors je n'ai rien compris.
CLS MOTS
Option Explicit
Private mvarmot As String 'local copy
Private mvarlongmot As Integer 'local copy
Public Property Let longmot(ByVal vData As Integer)
mvarlongmot = vData
End Property
Public Property Get longmot() As Integer
'reste toujours sur le premier mot
longmot = mvarlongmot
End Property
Public Property Let sMot(ByVal vData As String)
mvarmot = vData
End Property
Public Property Get sMot() As String
sMot = mvarmot
End Property
Public Function fLongmot(sMot As String) As Integer
fLongmot = Len(sMot)
End Function
, ----
[code.aspx?ID=41455 By Renfield]
cmd_click
Dim iLmot As Integer
Dim texte As String
Dim mot() As String
Dim i As Integer
texte = Text1.Text
mot() = Split(texte, " ")
For i = 0 To UBound(mot)
Set oMot = New CLSMOT
oMot.sMot = mot(i)
oMot.longmot = Len(mot(i))
Next i
, ----
[code.aspx?ID=41455 By Renfield]
jrivet
Messages postés7392Date d'inscriptionmercredi 23 avril 2003StatutMembreDernière intervention 6 avril 201260 27 févr. 2007 à 15:01
Salut,
avant d'essayer de comprendre, j'aimerais savoir pourquoi dans le property get longmot tu mets longmot = Len(mot(i)) et non pas
mvarlongmot
@+: Ju£i?n Pensez: Réponse acceptée
cs_lacomm
Messages postés298Date d'inscriptionlundi 14 juin 2004StatutMembreDernière intervention 5 juillet 20131 27 févr. 2007 à 15:20
oui, oui, merci, ce code marche, mais je viens de comprendre le principe des propriétés:
le LET lit la propriété, et le GET écrit la modification mais n'exécute pas la modification.
Je croyais qu'il était possible de mettre du code dans la propriété, en fait ce qui serait possible en terme de code, c'est de modifier la propriété dans la propriété elle-même dans le genre if longmot >10 then longmot = 10, mais pas avec des variables publiques ?
merci de ton aide en tout cas