Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - .NET

Страница: 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-сайт: www.vbnet.ru
 Профиль | | #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)
        ;Dim t1 As Integer
        ;Dim 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)
        ;Dim 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)
        ;Dim 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

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам