Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница: 1 |

 

  Вопрос: Проблема с выгружением объектов Добавлено: 20.01.06 11:35  

Автор вопроса:  Tamplier | ICQ: 298742928 
На форме стоят:
КомбоБокс, ТекстБокс(индекс 1), АпДаун(индекс 1)
Код:

Private Sub cmbNumberOfTrueAnswers_Click()
    
    If Val(cmbNumberOfTrueAnswers.Text) > Questions(CurrentQuestion).NumberOfTrueAnswers Then
        
        For i = txtTrueAnswer.UBound + 1 To Val(cmbNumberOfTrueAnswers.Text)
            
            Load txtTrueAnswer(i)
            txtTrueAnswer(i).Left = txtTrueAnswer(i - 1).Left + 960
            
            Load udTrueAnswer(i)
            udTrueAnswer(i).Left = udTrueAnswer(i - 1).Left + 960
'            udTrueAnswer(i).BuddyControl = "txtTrueAnswer(" & i & ")"
            
            txtTrueAnswer(i).Text = 1
            For j = 1 To txtTrueAnswer.UBound - 1
                
                For k = 1 To txtTrueAnswer.UBound - 1
                    
                    If StrComp(txtTrueAnswer(i).Text, txtTrueAnswer(k).Text, vbBinaryCompare) = 0 Then txtTrueAnswer(i).Text = Val(txtTrueAnswer(i).Text) + 1
                    
                Next
                
            Next
'            udTrueAnswer(i).Min = udTrueAnswer(i - 1).Min + 1
            
        Next
        
        For i = 1 To Val(cmbNumberOfTrueAnswers.Text)
            
            txtTrueAnswer(i).Visible = True
            udTrueAnswer(i).Visible = True
            
        Next
        
    ElseIf Val(cmbNumberOfTrueAnswers.Text) < Questions(CurrentQuestion).NumberOfTrueAnswers Then
        
        For i = txtTrueAnswer.UBound To Val(cmbNumberOfTrueAnswers.ListIndex) + 2 Step -1
            
            txtTrueAnswer(i).Visible = False
            Unload txtTrueAnswer(i)
            
            udTrueAnswer(i).Visible = False
            Unload udTrueAnswer(i)
            
        Next
        
    End If
    
    If Val(cmbNumberOfTrueAnswers.ListIndex) = 0 Then
        
        lblTrueAnswer.Caption = "Правильный ответ"
        
    Else
        
        lblTrueAnswer.Caption = "Правильные ответы"
        
    End If
    
    Questions(CurrentQuestion).NumberOfTrueAnswers = Val(cmbNumberOfTrueAnswers.Text)
    
    udNumberOfAnswers.Min = cmbNumberOfTrueAnswers.ListIndex + 1
    
End Sub


Кокда я уменьшаю индекс выбранного элемента в комбобоксе вб начинат материться, что, мол, не могу выгрузить... :(
Что можно сделать?
Процедура переделана под данную ситуацию, изначальный вид:

Private Sub cmbNumberOfTrueAnswers_Click()
    
    If Val(cmbNumberOfTrueAnswers.Text) > Questions(CurrentQuestion).NumberOfTrueAnswers Then
        
        For i = txtTrueAnswer.UBound + 1 To Val(cmbNumberOfTrueAnswers.Text)
            
            Load txtTrueAnswer(i)
            txtTrueAnswer(i).Left = txtTrueAnswer(i - 1).Left + 960
            
            Load udTrueAnswer(i)
            udTrueAnswer(i).Left = udTrueAnswer(i - 1).Left + 960
            
            txtTrueAnswer(i).Text = 1
            For j = 1 To txtTrueAnswer.UBound - 1
                
                For k = 1 To txtTrueAnswer.UBound - 1
                    
                    If StrComp(txtTrueAnswer(i).Text, txtTrueAnswer(k).Text, vbBinaryCompare) = 0 Then txtTrueAnswer(i).Text = Val(txtTrueAnswer(i).Text) + 1
                    
                Next
                
            Next
'            udTrueAnswer(i).Min = udTrueAnswer(i - 1).Min + 1
            
        Next

    ElseIf Val(cmbNumberOfTrueAnswers.Text) < Questions(CurrentQuestion).NumberOfTrueAnswers Then
        
        For i = txtTrueAnswer.UBound To Val(cmbNumberOfTrueAnswers.ListIndex) + 2 Step -1
            
            txtTrueAnswer(i).Visible = False
'            Unload txtTrueAnswer(i)
            
            udTrueAnswer(i).Visible = False
'            Unload udTrueAnswer(i)
            
        Next
        
    End If
    
    If Val(cmbNumberOfTrueAnswers.ListIndex) = 0 Then
        
        lblTrueAnswer.Caption = "Правильный ответ"
        
    Else
        
        lblTrueAnswer.Caption = "Правильные ответы"
        
    End If
    
    Questions(CurrentQuestion).NumberOfTrueAnswers = Val(cmbNumberOfTrueAnswers.Text)
    
    udNumberOfAnswers.Min = cmbNumberOfTrueAnswers.ListIndex + 1
    
End Sub

CurrentQuestion, Questions(CurrentQuestion).NumberOfTrueAnswers - известные величины

Ответить

  Ответы Всего ответов: 7  

Номер ответа: 1
Автор ответа:
 GSerg



Вопросов: 0
Ответов: 1876


 Профиль | | #1 Добавлено: 20.01.06 13:02
Unable to unload within this context (Error 365)

In some situations you are not allowed to unload a form or a control on a form. This error has the following causes and solutions:

There is an Unload statement in the Paint event for the form or for a control on the form that has the Paint event.
Remove the Unload statement from the Paint event.

There is an Unload statement in the Change, Click, or DropDown events of a ComboBox.
Remove the Unload statement from the event.


There is an Unload statement in the Scroll event of an HScrollBar or VScrollBar control.
Remove the Unload statement from the event.

There is an Unload statement in the Resize event of a Data, Form, MDIForm, or PictureBox control.
Remove the Unload statement from the event.

There is an Unload statement in the Resize event of an MDIForm that is trying to unload an MDI child form.
Remove the Unload statement from the event.

There is an Unload statement in the RePosition event or Validate event of a Data control.
Remove the Unload statement from the event.

There is an Unload statement in the ObjectMove event of an OLE Container control.
Remove the Unload statement from the event.

Ответить

Номер ответа: 2
Автор ответа:
 [root]



Вопросов: 45
Ответов: 1212
 Web-сайт: bit.pirit.info
 Профиль | | #2
Добавлено: 20.01.06 13:28
365 Unable to unload within this context Нет возможности в данном контексте произвести выгрузку

Ответить

Номер ответа: 3
Автор ответа:
 Tamplier



ICQ: 298742928 

Вопросов: 58
Ответов: 340
 Профиль | | #3 Добавлено: 21.01.06 13:00
365 Unable to unload within this context

Я это заметил :\
Так что? В отдельную процедуру выносить?

Ответить

Номер ответа: 4
Автор ответа:
 GSerg



Вопросов: 0
Ответов: 1876


 Профиль | | #4 Добавлено: 21.01.06 13:26
Да, причём всё равно нельзя вызывать эту процедуру из перечисленных событий.

Ответить

Номер ответа: 5
Автор ответа:
 Tamplier



ICQ: 298742928 

Вопросов: 58
Ответов: 340
 Профиль | | #5 Добавлено: 22.01.06 15:18
ну я про что и говорю:
вынести выгрузку в отдельную процедуру и вызывать ее из этих событий

Ответить

Номер ответа: 6
Автор ответа:
 GSerg



Вопросов: 0
Ответов: 1876


 Профиль | | #6 Добавлено: 22.01.06 15:34
Нет. Её нельзя вызывать из этих событий. Глубина вложенности значения не имеет.

Ответить

Номер ответа: 7
Автор ответа:
 Tamplier



ICQ: 298742928 

Вопросов: 58
Ответов: 340
 Профиль | | #7 Добавлено: 23.01.06 16:33
а вот это плохо. Лан, с визиблом придется работать

Ответить

Страница: 1 |

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



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