У VB6 свихнулись мозги?

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

У VB6 свихнулись мозги?

Сообщение Osteon » 06.03.2014 (Чт) 15:32

Я лично в недоумении...
Я пошагово, не знаю, как по-умному...
Запускаю написанную программу в среде VB6 (кнопка "Старт" - F5), работаю с ней, затем при выходе (красная кнопка с крестиком в правом верхнем углу ОКНА ПРОГРАММЫ), вылетает вся среда VB6, приходится каждый раз запускать сначала весь проект. Это появилось не знаю когда, но я грешу на то время, когда я установил "vb6mousewheel" по совету из книги "Visual Basic на практике"под редакцией Г. Магданурова.
Это еще как бы куда ни шло, но вот сейчас появился новый глюк у среды:
Я недавно создал тему "Программное изменение контекстного меню" - http://bbs.vbstreets.ru/viewtopic.php?f=1&t=45274.
После того, как я создал элемент меню с индексом "0", и нажимаю соответствующий пункт меню, дальше я не могу ничего сделать - программа зависает. Не реагирует никак. Не работает останов среды (квадратик), не уходит окно тестируемой программы, и, соответственно, не показывается окно среды с текстом программы в редакторе среды. Если открыты несколько окон разных форм программы, то не могу их закрыть - крестик в правом верхнем углу при наведении курсора светлеет (становится активным), и все, при нажатии не реагирует. ЕСли окно неактивно и находится под другим окном, то при клике на крестик оно становится активным, т.е. становится сверху предыдущего, но тоже не закрывается при клике на крестик.
Только что обратил внимание, что не закрываются окна форума, системного "Блокнота", и другие, пока я не закрыл среду принудительно. После закрытия среды все заработало штатно.
При входе в неидексированный пункт в меню ничего подобного не происходит, все работает в штатном режиме. Я подозреваю, что дело здесь в индексации пункта меню, но не знаю, как выйти из ситуевины...
В общем, я в полном недоумении... У кого-либо случалось что-либо подобное?
Работаю в WinXP Prof SP3, среда VB6, программа работает с БД Access (*.mdb). В приложении реализация меню, здесь все работает...
Вложения
Массив меню.rar
(1.74 Кб) Скачиваний: 115

Qwertiy
Доктор VB наук
Доктор VB наук
 
Сообщения: 2753
Зарегистрирован: 26.06.2011 (Вс) 21:26

Сообщение Qwertiy » 06.03.2014 (Чт) 15:56

В отлаживаемой программе нажать Ctrl+Break и если есть открытые MsgBox'ы закрыть их - не помогает?

Osteon
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 122
Зарегистрирован: 17.01.2013 (Чт) 5:53

Re: У VB6 свихнулись мозги?

Сообщение Osteon » 07.03.2014 (Пт) 10:19

Qwertiy писал(а):В отлаживаемой программе нажать Ctrl+Break и если есть открытые MsgBox'ы закрыть их - не помогает?

Не-а... :( MsgBox'ы закрываются, а потом то же самое - висит... Отключил mousewheel - он не при делах - висит... На Ctrl+Break не реагирует...

Снова пошагово:
1. Запускаю программу в среде VB6, выхожу через контекстное меню на показ человеков (Gluk1.jpg в приложении)
2. Тут же выскакивает ошибка (Gluk2.jpg в приложении). На нее пока внимания не обращайте. Жму "Закончить" - вылетает вся система. Повторно запускаю все. Жму "Отладка" - экран застывает, никаких действий, на мышь и клавиатуру ничего не реагирует. Закрываю экран тестируемой программы не выходя из среды, через несколько щелчков мышой на "окошке" программы в нижней панели инструментов винды (типа как в (Gluk4.jpg в приложении)
3. Выходит экран с редактором (Gluk3.jpg в приложении). На текст программы внимания так же не обращайте, я пока возмущен и негодую по поводу сумасшествия VB6. Вверху навел курсор на "останов" - это видно, кнопка "вспухла". Но никак кнопка не реагирует на щелчки мышой, так и остается... Вспухшая…
4. Выхожу только через панель инструментов... (Gluk4.jpg в приложении)

Все, собственно.
Кстати: при тестировании той экспериментальной программы с массивом меню, что я приаттачил в начальном посте, все работает прекрасно: тестируемая программа выходит при нажатии на крестике вверху-справа окна, не «выбивая» всей среды VB6. При вставке в текст программы команды “Stop” программа останавливается, сворачивая свое окно и показывая окно редактора среды, где желтой полосой выделена «Stop»

Мысли пока такие: если в программе из первого поста все хорошо, то нужно искать где-то в моей основной проге ошибку. Это или какая-то API-шка, или какая-то моя недоработка при юзании БД… Как-то так…

Может, кто сталкивался с такими глюками при использовании API-шек? Или еще чего? На праздники буду разбираться...
Вложения
Gluk.rar
(363.06 Кб) Скачиваний: 94

alex77755
Обычный пользователь
Обычный пользователь
Аватара пользователя
 
Сообщения: 97
Зарегистрирован: 24.03.2009 (Вт) 11:40

Re: У VB6 свихнулись мозги?

Сообщение alex77755 » 08.03.2014 (Сб) 0:33

Запускаю написанную программу в среде VB6

А почему в среде?
Компилировать не пробовал?
Компилятор может показать ошибку

ger_kar
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1957
Зарегистрирован: 19.05.2011 (Чт) 19:23
Откуда: Кыргызстан, Иссык-Куль, г. Каракол

Re: У VB6 свихнулись мозги?

Сообщение ger_kar » 08.03.2014 (Сб) 5:47

Ну и как вариант, есть запуск в среде с предварительной полной компиляцией.
А SubClassing используется или нет? По признакам похоже на то.
Бороться и искать, найти и перепрятать

Osteon
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 122
Зарегистрирован: 17.01.2013 (Чт) 5:53

Re: У VB6 свихнулись мозги?

Сообщение Osteon » 10.03.2014 (Пн) 5:47

alex77755 писал(а):
Запускаю написанную программу в среде VB6

Компилировать не пробовал?
Компилятор может показать ошибку

Не пробовал... Будем попробЫвать...
ger_kar писал(а):А SubClassing используется или нет? По признакам похоже на то.

Что такое SubClassing? Только без сатирических экскурсов в мое неполное VB-образование, что принято на этом форуме... :( Отсутствует оно... Хотя, логически, если я не знаю, что это такое, то, наверное, не используется... :oops:

ger_kar
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1957
Зарегистрирован: 19.05.2011 (Чт) 19:23
Откуда: Кыргызстан, Иссык-Куль, г. Каракол

Re: У VB6 свихнулись мозги?

Сообщение ger_kar » 10.03.2014 (Пн) 6:50

про сабклассинг можно почитать тут и здесь.
Также есть куча других тем на форуме на тему Сабклассинга он же субклассинг он же Subclassing, достаточно сделать поиск по этим словам, ну и гугл по этой тематике много чего интересного выдает.
Бороться и искать, найти и перепрятать

Osteon
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 122
Зарегистрирован: 17.01.2013 (Чт) 5:53

Re: У VB6 свихнулись мозги?

Сообщение Osteon » 19.03.2014 (Ср) 13:55

Про сабклассинг теперь знаю. Не на уровне спеца, но при случае удивить дворника-таджика эдаким словцом "Сабклассинг" смогу... :D

Здоровеньки булы (в свете новых веяний :wink: )!

Спешу обрадовать - у VB6 с мозгами все в порядке! Не в порядке у программиста! :roll:

После двухнедельных мытарств и мучений я решил "отгрузить" MouseWheel Fix (скроллинг текстового редактора в среде VB6). Подгрузил я ее по информации с книги "Visual Basic на практкие" под ред. Г.И.Магданурова, "БХВ-Петербург", 2008, стр.20. Решение принял потому, что этот *.ocx я подключал к проекту последним.
Но - при попытке отключить его через менеджер модулей (Err0) Windows выдавала ошибку (Err1). Пришлось тупо удалить из файла проекта *.vbp строку "Module=MouseWheel; MouseWheel.bas". Ничего не изменилось. Подключил снова.
Все шло, как было описано выше - при установке брейкпойнта на текст программы (Err1.1) и попытке вызова контекстного меню (Err2), экран зависал, никакой реакции. Потом винда сама по себе убирала гриды с дочернего окна (Err3), после нескольких кликов на иконке программы на панели задач внизу винды кое-как появлялось окно редактора программы, но - работала только F8 (пошаговое выполнение программы) или F5 (пуск). никакой реакции на мышь - не выделяется текст, не показываются в тултипе значения переменных при наведении курсора на их обозначение, и т.п.
По какому-то наитию отключил "MouseWheel.bas", который я нашел где-то в сети. Модуль предназначен для скроллирования сеток грида. И - о Боги!!! - все заработало в штатном режиме, так, как должно быть.
Вывод: во всем виноват именно этот модуль - MouseWheel.bas. Вот теперь я не знаю - имеет ли этот модуль признаки сабклассинга? При попытке проанализировать текст этого модуля я пришел в ужас, на мне зашевелились остатки волос на моей лысине, и я закрыл "Блокнот". Немного неудобно постоянно отключать этот модуль при тестировании программы, но это не смертельно. При окончательной компиляции проекта нужно просто не забыть его включить...

Модуль прилагаю. Спасибо всем за участие! :lol:
Вложения
Глюк.rar
(476.31 Кб) Скачиваний: 99

iGrok
Артефакт VBStreets
Артефакт VBStreets
 
Сообщения: 4272
Зарегистрирован: 10.05.2007 (Чт) 16:11
Откуда: Сетевое сознание

Re: У VB6 свихнулись мозги?

Сообщение iGrok » 19.03.2014 (Ср) 16:23

Osteon писал(а):Вот теперь я не знаю - имеет ли этот модуль признаки сабклассинга?

Однозначно да. Без сабклассинга, если мне ни с кем не изменяет память, прокрутку не приделаешь.
label:
cli
jmp label

Osteon
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 122
Зарегистрирован: 17.01.2013 (Чт) 5:53

Re: У VB6 свихнулись мозги?

Сообщение Osteon » 19.03.2014 (Ср) 16:39

iGrok писал(а):Однозначно да.

Я почему-то так и подумал. Просто этот модуль шел как *.bas, потому и не пришла мне в голову мысль за сабклассинг... :salut: Я его просто бездумно воткнул в проект, и все. А он вишь как... :?

iGrok
Артефакт VBStreets
Артефакт VBStreets
 
Сообщения: 4272
Зарегистрирован: 10.05.2007 (Чт) 16:11
Откуда: Сетевое сознание

Re: У VB6 свихнулись мозги?

Сообщение iGrok » 19.03.2014 (Ср) 17:16

По идее, достаточно при работе в IDE не использовать AddScroll2Grids.

Как понять, что код работает в IDE, можно почитать тут:
viewtopic.php?f=68&t=42654
label:
cli
jmp label

ger_kar
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1957
Зарегистрирован: 19.05.2011 (Чт) 19:23
Откуда: Кыргызстан, Иссык-Куль, г. Каракол

Re: У VB6 свихнулись мозги?

Сообщение ger_kar » 19.03.2014 (Ср) 17:38

iGrok писал(а):Osteon писал(а):Вот теперь я не знаю - имеет ли этот модуль признаки сабклассинга?Однозначно да. Без сабклассинга, если мне ни с кем не изменяет память, прокрутку не приделаешь.
Это точно, но подумалось, а вдруг, да и изобрели что-то новенькое! Но код показал, что таки нет - ничего нового, обычный сабклассинг, чтоб его :)
Бороться и искать, найти и перепрятать

Osteon
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 122
Зарегистрирован: 17.01.2013 (Чт) 5:53

Re: У VB6 свихнулись мозги?

Сообщение Osteon » 20.03.2014 (Чт) 5:52

ger_kar писал(а):Но код показал, что таки нет - ничего нового, обычный сабклассинг, чтоб его


:D Вот и разобрались! Еще раз спасибо за помощь! :lol:

Osteon
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 122
Зарегистрирован: 17.01.2013 (Чт) 5:53

Re: У VB6 свихнулись мозги?

Сообщение Osteon » 20.03.2014 (Чт) 5:55

iGrok писал(а):Как понять, что код работает в IDE, можно почитать тут:

Будем учить, и даже попытаемся понять... :wink:


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

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

Сейчас этот форум просматривают: Majestic-12 [Bot] и гости: 12

    TopList