Страница: 1 |
VB круто виснет на Unload
А что именно ты выгружаешь !? Из одной формы открывается вторая - модальная. Так вот при закрытии модальной (крестиком) нужно, чтобы первая тоже выгружалась. Код такой: Private Sub Form_Unload(Cancel As Integer) Unload UF_Nakl 'модальная форма(вторая) Set UF_Nakl = Nothing Unload Terminal 'основная форма(первая) - на этом месте круто подвисает Set Terminal = Nothing End Sub sYstEmiZer , MSDN сказал VB будет висеть, а именно "SYMPTOMS CAUSE Решай свою проблему по другому. К примеру, при вызове модальной формы: ModalForm.Show vbModal 'показ модальной формы Unload Me 'выгрузка родительсокй формы Попробуй Nothing не присваивать... должно помочь! Сам с такой же проблеммой встречался (на какой-то версии msvbvm именно такая вот хрень...) Привет, boevik! Выгрузить родительскую при закрытии дочерней модальной не могу - на ней данные находятся!!!!! Че делать? Nothing убирал - по фигу, все равно виснет!!! <Выгрузить родительскую при закрытии дочерней модальной не могу - на ней данные находятся> А как же ты собирался из дочерней выгружать родительскую форму? Или я что то не так понял? boevik, да не, у меня во как: 1. Основная форма (Terminal) открывается и на ней вводятся данные 2. Затем при нажатии на кнопку появляется дочерняя (UF_Nakl) модальная форма 3. Так вот закрываю я модальную (Х) 4. И хочу чтобы выгрузилась основная и модальная, а выполнение кода прекратилось. Так в чем проблема с таким кодом? в форме Terminal на кнопке открытия формы: UF_Nakl.Show vbModal 'загрузка модальной формы и ОЖИДАНИЕ ее завершения Unload Me 'выгрузка формы Terminal ОК! Понял, спасибо! А как определить, что модальная форма закрылась именно (Х), чтобы толко в этом случае выгружать основную? А как ты еще закрываешь форму? И какая разница? Если к примеру есть кнопки OK and Cancel, то сделай public флаг и проверяй через что произошло закрытие и действуй соотвествуеще Думаю вот тут уже без сабклассинга модальной формы не обойтись Обрабатывай Query_Unload А, ну да, тоже верно , на худой конец можно завести глобальную переменную... И по ней смотреть, как пользователь выходит... крестиком, аль кнопочкой... Немного поясню: пример содержит модуль и две формы, по одной кнопке на каждой 'код модуля Option Explicit Public ExitType As Byte 'код основной формы Option Explicit Private Sub Command1_Click() Form2.Show 1 If ExitType = vbFormControlMenu Then Unload Me End Sub 'код модальной формы Option Explicit Private Sub Command1_Click() Unload Me End Sub Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer) ExitType = UnloadMode End Sub Страница: 1 |
Вопрос: VB6 подвисает при Unload
Добавлено: 06.02.04 15:30
Автор вопроса: sYstEmiZer | ICQ: 280647023
Ответы
Всего ответов: 15
Номер ответа: 1
Автор ответа:
HACKER
Разработчик Offline Client
Вопросов: 236
Ответов: 8362
Профиль | | #1
Добавлено: 06.02.04 23:05
Ты было уменя что-то типа. Нажмаешь на Unload и VB вылитает, вообщем я VB переустановил и всё ОК!
Номер ответа: 2
Автор ответа:
sne
Разработчик Offline Client
ICQ: 233286456
Вопросов: 34
Ответов: 5445
Web-сайт:
Профиль | | #2
Добавлено: 06.02.04 23:10
Номер ответа: 3
Автор ответа:
sYstEmiZer
ICQ: 280647023
Вопросов: 16
Ответов: 45
Профиль | | #3
Добавлено: 09.02.04 10:26
Номер ответа: 4
Автор ответа:
boevik
Хранитель чата
ICQ: 137392264
Вопросов: 8
Ответов: 557
Web-сайт:
Профиль | | #4
Добавлено: 09.02.04 10:44
In Visual Basic, if one form shows another form modally, and the second form tries to unload the first form in either its Unload or Query_Unload event, Visual Basic hangs.
When unloading a modal form's parent form, Visual Basic enters an infinite loop. "
Номер ответа: 5
Автор ответа:
sne
Разработчик Offline Client
ICQ: 233286456
Вопросов: 34
Ответов: 5445
Web-сайт:
Профиль | | #5
Добавлено: 09.02.04 11:37
Номер ответа: 6
Автор ответа:
sYstEmiZer
ICQ: 280647023
Вопросов: 16
Ответов: 45
Профиль | | #6
Добавлено: 09.02.04 11:43
Номер ответа: 7
Автор ответа:
boevik
Хранитель чата
ICQ: 137392264
Вопросов: 8
Ответов: 557
Web-сайт:
Профиль | | #7
Добавлено: 09.02.04 12:50
Номер ответа: 8
Автор ответа:
sYstEmiZer
ICQ: 280647023
Вопросов: 16
Ответов: 45
Профиль | | #8
Добавлено: 09.02.04 13:02
Номер ответа: 9
Автор ответа:
boevik
Хранитель чата
ICQ: 137392264
Вопросов: 8
Ответов: 557
Web-сайт:
Профиль | | #9
Добавлено: 09.02.04 13:18
Номер ответа: 10
Автор ответа:
sYstEmiZer
ICQ: 280647023
Вопросов: 16
Ответов: 45
Профиль | | #10
Добавлено: 09.02.04 13:32
Номер ответа: 11
Автор ответа:
boevik
Хранитель чата
ICQ: 137392264
Вопросов: 8
Ответов: 557
Web-сайт:
Профиль | | #11
Добавлено: 09.02.04 13:45
Номер ответа: 12
Автор ответа:
sne
Разработчик Offline Client
ICQ: 233286456
Вопросов: 34
Ответов: 5445
Web-сайт:
Профиль | | #12
Добавлено: 09.02.04 13:46
Номер ответа: 13
Автор ответа:
LamerOnLine
ICQ: 334781088
Вопросов: 108
Ответов: 2822
Профиль | | #13
Добавлено: 09.02.04 15:09
Номер ответа: 14
Автор ответа:
sne
Разработчик Offline Client
ICQ: 233286456
Вопросов: 34
Ответов: 5445
Web-сайт:
Профиль | | #14
Добавлено: 09.02.04 17:01
Номер ответа: 15
Автор ответа:
LamerOnLine
ICQ: 334781088
Вопросов: 108
Ответов: 2822
Профиль | | #15
Добавлено: 10.02.04 09:39