Страница: 1 |
Страница: 1 |
Вопрос: Проблема с классами
Добавлено: 26.07.05 11:52
Автор вопроса: Екатерина
есть класс
Public Class ClParam
Public Formula As String
Public GapValue As String
End Class
и есть класс
Public Class ClParValue
Public Value As String
End Class
хочу в екземпляре класса ClParam создавать экземпляры класса ClParValue
добавила коллекцию...
Public Class ClParam
Public Formula As String
Public GapValue As String
Public ClParValue As New Collection
End Class
Все прекрасно создается, но потом хочу обновить значение переменных
ClParam(k).ClParValue(i).Value = "3434"
но почему то значение присваивается только для i=1
а дальше ошибка хотя кол-во экземпляров правильно выдает = 5
Ответы
Всего ответов: 2
Номер ответа: 1
Автор ответа:
Павел
Администратор
ICQ: 326066673
Вопросов: 368
Ответов: 5968
Web-сайт:
Профиль | | #1
Добавлено: 26.07.05 14:24
Покажите пожалуйста весь код.
Номер ответа: 2
Автор ответа:
Екатерина
Вопросов: 23
Ответов: 25
Профиль | | #2
Добавлено: 26.07.05 14:36
эесть форма
Public Class GenNormales
Inherits System.Windows.Forms.Form
Public ClParam As New Collection ' Create a Collection object.
Function InfoInParam(ByVal kom As String, ByVal s As Integer) As Boolean
' создается экземпляр ClParValue
'информацию в класс параметра из примечания
'MsgBox("Забиваю в пар-тр № " & MyF.ClParam.Count & vbCr & kom)
 im t1 As Integer
 im t2 As Integer
t1 = InStr(kom, "Формула: " + 9
t2 = InStr(kom, "Значение: "
If t2 - t1 > 1 Then
ClParam(MyF.ClParam.Count).Formula = Mid(kom, t1, t2 - t1 - 1)
If ClParam(MyF.ClParam.Count).Type = "ВЫБ" Then
ClParam(MyF.ClParam.Count).NewMyValue2(Mid(kom, t1, t2 - t1 - 1))
End If
End If
End Function
Public Function FindValueVibParam(ByVal k As Integer)
 im ttt As Integer
ttt = 1
If ClParam(k).Formula <> "" Then
For i = 1 To Len(ClParam(k).Formula)
If Mid(ClParam(k).Formula, i, 1) = "[" Then
If Mid(ClParam(k).Formula, i + 1, 2) = "cl" Then
' если есть ссылка на пар-тр
ClParam(k).ClParValue(ttt).Value = ClParam(CType(Mid(ClParam(k).Formula, i + 3, InStr(i, ClParam(k).Formula, ";" - i - 4), Integer)).Value
MsgBox(ClParam(k).ClParValue(ttt).Value)
'ClParam(k).NewMyValue(ClParam(CType(Mid(ClParam(k).Formula, i + 3, InStr(i, ClParam(k).Formula, ";" - i - 4), Integer)).Value)
Else
ClParam(k).ClParValue(ttt).Value = Mid(ClParam(k).Formula, i + 1, InStr(i, ClParam(k).Formula, "]" - i - 1)
End If
ttt = ttt + 1
End If
Next i
End If
' берем первое подходящее значение
For i = 1 To ClParam(k).ClValue.Count
If ClParam(k).ClValue(i).Value <> "-" Then
ClParam(k).Value = ClParam(k).ClValue(i).Value
End If
Next i
End Function
'и есть класс
Public Class ClParam
Public Type As String
Public Formula As String
Public ClParValue As New Collection
Public Inst As New ClValue ' Create a new Instance of ClassSheet.
Public Sub New()
Me.Type = ""
Me.Formula = ""
End Sub
Public Function NewMyValue2(ByVal str1 As String)
 im t1 As Integer
If str1 <> "" Then
For t1 = 1 To Len(str1)
If Mid(str1, t1, 1) = ";" Then
Me.ClParValue.Add(Item:=Inst, Key:=CStr(Me.ClParValue.Count + 1))
Inst = Nothing
End If
Next t1
If Mid(str1, Len(str1), 1) <> ";" Then
Me.ClParValue.Add(Item:=Inst, Key:=CStr(Me.ClParValue.Count + 1))
Inst = Nothing
End If
End If
End Function
End Class
' и дочерний
Public Class ClValue
Public Name As String
Public Value As String
End Class