|
realist
|
|
Как выгрузить программу без ошибок?05.07.2009, 11:58. Показов 2109. Ответов 13
Метки нет (Все метки)
Раньше я просто закрывал программу 'крестиком'
Потом, когда к проекту добавились некоторые контролы стали возникать ошибки при выгрузке программы. И тогда я в событии unload поставил end. Помогло. А сейчас при добавлении ещё одного контрола, при выгрузки программы возникает похожая ошибка, что была до end. Я где-то видел универсальный код выгрузки программы, но сейчас не могу найти. |
|
| 05.07.2009, 11:58 | |
|
Ответы с готовыми решениями:
13
Как выгрузить из памяти свою программу? как выгрузить кофигурацию в 7.7 без б.д.?
|
|
Comanche
|
|||||||
| 05.07.2009, 12:54 | |||||||
|
Вообще, не рекомендуется использовать End для завершения работы VB-программы. См. MSDN:
'Универсальный' код закрытия - это что-то вроде этого:
Хотя есть информация, что 'Set Form1 = Nothing' освобождает память от всех переменных, описанных в пределах формы Form1, я всё же пишу в Sub Form_QueryUnload очистку всех объектных переменных ДО вызова 'Set Form1 = Nothing'. Например, 'Set myRecordset = Nothing', 'Set myTextBox = Nothing' и так далее, - делая перед этим 'закрытие', если объект его поддерживает, конечно: например, 'myRecordset.Close', 'myExcelApplication.Quit' и т.п. Если у тебя проект стартует с формы, и в проекте есть ещё модуль, объектные переменные которого (глобальные) используются в коде формы, то их сто процентов нужно освобождать внутри Sub Form_QueryUnload, поскольку они не объявлены в пределах формы и не 'умрут' вместе с формой при 'Set Form1 = Nothing'. Кроме всего этого, при закрытии приложений Word и Excel есть тонкости, связанные с тем, что их нужно закрывать по-разному в ситуациях, когда они были открыты через CreateObject и через GetObject: для меня это загадка, но подбором найти верное решение удалось. |
|||||||
|
realist
|
|
| 06.07.2009, 19:03 | |
|
Дело в том, что у меня из родительской формы открывается несколько немодальных форм. Когда стоял энд в событи закрытия родительской формы, остальные формы закрывались, это мне и было нужно. А сейчас даёт ошибку. Может есть какая-нить у кого наработка?
|
|
|
Comanche
|
||||||
| 06.07.2009, 19:16 | ||||||
|
А разве сложно заменить твой End на такой вот код?
|
||||||
|
realist
|
|
| 06.07.2009, 20:11 | |
|
Гениально!
Только иногда из-зи чего-то пишет - 'ошибка 9 - нижний индекс вне диапазона' Не подскажешь, как это победить? |
|
|
Comanche
|
|
| 06.07.2009, 20:29 | |
|
Я дал кривой код, sorry. После каждого Unload размер коллекции Forms уменьшается на единицу и верхняя граница цикла For 'плывёт'
)Проще сначала пройтись циклом по всей коллекции, читая имена форм в строковый массив. А потом - «For i = LBound(myArray) To UBound(myArray)», и уже в этом цикле делать Forms(myArray(i)).Unload неугодным формам. |
|
|
realist
|
|
| 06.07.2009, 21:29 | |
|
хе-хе
для инструкции Forms(myArray(i)) пишет - несоответсвие типов, т.к. имя в кавычках получается |
|
|
realist
|
|
| 06.07.2009, 21:35 | |
|
я вот такую бяку придумал:
unload form1 unload form2 и т.д. Если даже форма с таким именем не открыта то ошибки не будет. По-моему ещё круче))) |
|
|
0 / 0 / 0
Регистрация: 04.03.2009
Сообщений: 79
|
||||||
| 07.07.2009, 06:53 | ||||||
|
можно проще:
0
|
||||||
|
0 / 0 / 0
Регистрация: 04.03.2009
Сообщений: 79
|
||||||
| 07.07.2009, 06:57 | ||||||
|
пардон, ошибочка, надо в цикле вставить проверку: вдруг форма f - текущая форма. Т.е. что-то типа
0
|
||||||
|
0 / 0 / 0
Регистрация: 15.04.2009
Сообщений: 26
|
||||||
| 07.07.2009, 09:46 | ||||||
0
|
||||||
|
Vsh
|
||||||
| 07.07.2009, 11:15 | ||||||
|
выгружать надо форму с 0-м индексом
|
||||||
|
0 / 0 / 0
Регистрация: 09.05.2010
Сообщений: 233
|
|
| 05.09.2010, 10:38 | |
|
А чем так плох End? Ну остануться какие-то объекты в памяти, неужели они будут такой проблемой?
0
|
|
|
0 / 0 / 0
Регистрация: 09.05.2010
Сообщений: 233
|
||||||
| 05.09.2010, 12:40 | ||||||
|
Вот что насоветовали заграничные коллеги:
0
|
||||||
| 05.09.2010, 12:40 | |
|
Помогаю со студенческими работами здесь
14
Программный код написан без ошибок но программу брикает Написать программу без ошибок. Что она вообще делает Как выгрузить свою же программу при завершении Windows? Как выгрузить программу из памяти при закрытии окна как откомплиировать без ошибок( Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
| Опции темы | |
|
|
Новые блоги и статьи
|
|||
|
Уведомление о неверно выбранном значении справочника
Maks 06.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "НарядПутевка", разработанного в конфигурации КА2.
Задача: уведомлять пользователя, если в документе выбран неверный склад. . .
|
Установка Qt Creator для C и C++: ставим среду, CMake и MinGW без фреймворка Qt
8Observer8 05.04.2026
Среду разработки Qt Creator можно установить без фреймворка Qt. Есть отдельный репозиторий для этой среды: https:/ / github. com/ qt-creator/ qt-creator, где можно скачать установщик, на вкладке Releases:. . .
|
AkelPad-скрипты, структуры, и немного лирики..
testuser2 05.04.2026
Такая программа, как AkelPad существует уже давно, и также давно существуют скрипты под нее. Тем не менее, прога живет, периодически что-то не спеша дополняется, улучшается. Что меня в первую очередь. . .
|
Отображение реквизитов в документе по условию и контроль их заполнения
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеСпецтехники", разработанного в конфигурации КА2.
Данный документ берёт данные из другого нетипового документа. . .
|
|
Фото всей Земли с борта корабля Orion миссии Artemis II
kumehtar 04.04.2026
Это первое подобное фото сделанное человеком за 50 лет. Снимок называют новым вариантом легендарной фотографии «The Blue Marble» 1972 года, сделанной с борта корабля «Аполлон-17». Новое фото. . .
|
Вывод диалогового окна перед закрытием, если документ не проведён
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2.
Задача: реализовать программный контроль на предмет проведения документа. . .
|
Программный контроль заполнения реквизитов табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2.
Задача:
1. Реализовать контроль заполнения реквизита. . .
|
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение:
DISM / Online / Add-Capability / CapabilityName:WMIC~~~~
Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
|