J'ai un problème "simple", je veux générer dans ma classe des paramètres étendus, en gros je vais rajouter des éléments mais je ne sais pas encore comment ils vont s’appeler.
Pour se faire je triche un peu et j'utilise deux matrices _nameExtendedData() et _valueExtendedData()
ce qui donne dans la définition
Private _nbExtendedData As Integer
Private _nameExtendedData() As String
Private _valueExtendedData() As String
Et dans l'initialisation
Private Sub Class_Initialize()
_nbExtendedData = 0
ReDim _nameExtendedData(_nbExtendedData)
ReDim _valueExtendedData(_nbExtendedData)
End Sub ' Constructor
J'ai réussi à faire le get :
Public Property GET extendedData(ByVal nameExtendedData As String)
Dim i As Integer
extendedData=""
if _nbExtendedData>0 then
for i=1 to _nbExtendedData
if (_nameExtendedData(i)=nameExtendedData) then
extendedData=_valueExtendedData(i)
end if
next i
end if
End Property
Que j'appelle ainsi :
test = pt.extendedData("nom de la variable en String")
Mais pour le LET j'ai essayé moulte choses qui ne fonctionnent pas,
mais je voudrais l'utiliser comme ceci
pt.extendedData("nom de la variable en String")="valeur en String"
La définition qui me semble la plus proche de la solution est la suivante
Public Property LET extendedData(ByVal nameExtendedData As String, valueExtendedData As String)
String, ByVal valueExtendedData As String)
Dim i As Integer
Dim newExtendedData As Boolean
if _nbExtendedData<=0 then
newExtendedData=true
else
newExtendedData=true
for i=1 to _nbExtendedData
if _nameExtendedData(i)=nameExtendedData then
newExtendedData=false
_valueExtendedData(i)=valueExtendedData
exit for
end if
next i
end if
if newExtendedData then
_nbExtendedData=_nbExtendedData+1
ReDim Preserve _nameExtendedData(_nbExtendedData),_valueExtendedData(_nbExtendedData)
_nameExtendedData(_nbExtendedData) = nameExtendedData
_valueExtendedData(_nbExtendedData)= valueExtendedData
end if
End Property
Merci à ceux qui auront lu jusqu'ici
A+
- Edité par Xunor 2 août 2018 à 11:55:09
[Basic Open Office] Class : LET "à 2 entrées"
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.