Unload модальных и немодальных окон

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
Space
Combo-маньяк
Combo-маньяк
 
Сообщения: 818
Зарегистрирован: 11.01.2007 (Чт) 1:19
Откуда: Украина

Unload модальных и немодальных окон

Сообщение Space » 06.04.2009 (Пн) 19:45

А модальные окна всегда считаются подчинёнными окну, из которого происходит их показ, даже если модальное окно вызвано без указания окна-владельца?

Space
Combo-маньяк
Combo-маньяк
 
Сообщения: 818
Зарегистрирован: 11.01.2007 (Чт) 1:19
Откуда: Украина

Re: Unload модальных и немодальных окон

Сообщение Space » 07.04.2009 (Вт) 0:43

К чему вся эта беда? Просто делал тест и увидел такое. Почему проект нормально завершается, ведь нет выгрузки Form2 и она не подчинённая?..
Вложения
TestUnload.zip
(1.4 Кб) Скачиваний: 52

arthur2
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1688
Зарегистрирован: 23.01.2008 (Ср) 14:35

Re: Unload модальных и немодальных окон

Сообщение arthur2 » 07.04.2009 (Вт) 12:38

Вот тебе твой же тест ещё жестче :)

Это к вопросу о том, как вырубить бейсик без всяких апи

А всё это не от того, что в майкрософте работают дятлы, а от того, что подобные извращения - никому нафиг не нужны :roll:

Кстати, если закомментировать энд и после клика по твоей волшебной кнопке нажать паузу - то перед смертью бейсик покажет тебе, что модальное окно вовсе не выгрузилось :)
Вложения
TestUnload.rar
как без хуков, субклассингов и вообще без апи убить бейсик :)
(1.73 Кб) Скачиваний: 52
Артур
 
   

Space
Combo-маньяк
Combo-маньяк
 
Сообщения: 818
Зарегистрирован: 11.01.2007 (Чт) 1:19
Откуда: Украина

Re: Unload модальных и немодальных окон

Сообщение Space » 09.04.2009 (Чт) 1:17

в exe мой вариант выгружается полностью, твой вариант работает без ошибок и не выгружается.

arthur2
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1688
Зарегистрирован: 23.01.2008 (Ср) 14:35

Re: Unload модальных и немодальных окон

Сообщение arthur2 » 09.04.2009 (Чт) 19:33

Ага. Я так тебе и написал:
arthur2 писал(а):если закомментировать энд и после клика по твоей волшебной кнопке нажать паузу - то перед смертью бейсик покажет тебе, что модальное окно вовсе не выгрузилось

В экзешнике ни каких ошибок не происходит, потому что енд не наступает: код не идёт дальше модального окна, а оно так и не выгружено :) Как-то так

Дохнет именно среда - маразм искусственно созданной ситуации, при которой из модального окна выгружаются немодальные, оказывается за пределами понимания бейсика :)

Цель моего примера была не в том, чтобы обрушить бейсик, а в том, чтобы сделать более очевидной нелепость такого подхода.
Артур
 
   

Saturn.65
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 543
Зарегистрирован: 13.10.2006 (Пт) 18:46

Re: Unload модальных и немодальных окон

Сообщение Saturn.65 » 08.07.2009 (Ср) 21:02

Что еще не хватает? В проекте несколько форм. В каждой записано:
Код: Выделить всё
Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
Unload Me
End Sub

В главной форме перечислены все остальные и добавлено еще End
Код: Выделить всё
Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
Unload Form2
Unload Form2
........
Unload Me
End
End Sub

Начинаешь создавать exe, а бейзик ругается: в диспетчере задач висит проект. Почему он не выгружается?
Главное, ребята, сердцем не стареть...

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Re: Unload модальных и немодальных окон

Сообщение alibek » 08.07.2009 (Ср) 21:24

Потому что надо думать, прежде чем вызывать рекурсии.
Lasciate ogni speranza, voi ch'entrate.

Saturn.65
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 543
Зарегистрирован: 13.10.2006 (Пт) 18:46

Re: Unload модальных и немодальных окон

Сообщение Saturn.65 » 15.07.2009 (Ср) 18:23

alibek писал(а):Потому что надо думать, прежде чем вызывать рекурсии.

Кто-нибудь мне может по нормальному объяснить, что надо еще дописать в Form_QueryUnload, кроме Unload Form... и End, чтобы проект полностью выгружался из памяти. Окна у меня не модальные. Надоело диспетчером задач убирать при компиляции. Что такое рекурсия я все равно не знаю.
Главное, ребята, сердцем не стареть...

dr.MIG
Гуру
Гуру
Аватара пользователя
 
Сообщения: 1441
Зарегистрирован: 18.12.2004 (Сб) 9:53
Откуда: г.Ярославль

Re: Unload модальных и немодальных окон

Сообщение dr.MIG » 15.07.2009 (Ср) 19:09

Ну так подумай, что делает Unload Me внутри Form_QueryUnload?

1. Ты пытаешься выгрузить форму, происходит событие QueryUnload.
2. Внутри него ты выгружаешь форму (Unload Me), что в свою очередь вызывает пункт 1.
Salus populi suprema lex

Saturn.65
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 543
Зарегистрирован: 13.10.2006 (Пт) 18:46

Re: Unload модальных и немодальных окон

Сообщение Saturn.65 » 15.07.2009 (Ср) 19:21

dr.MIG
Так я Unload Form... еще написал и в Form_Unload. Судя по всему надо только сюда и писать, а Form_QueryUnload оставить пустым. Спасибо за ответ. Вчера все выгружалось, а сегодня та же история. Опять в процессах висит. Сейчас то что не хватает?
Главное, ребята, сердцем не стареть...


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: Yandex-бот и гости: 34

    TopList