Форум программистов, компьютерный форум, киберфорум
Visual Basic
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.93/40: Рейтинг темы: голосов - 40, средняя оценка - 4.93
185 / 36 / 3
Регистрация: 28.05.2015
Сообщений: 149

End или Unload Me?

24.01.2017, 11:57. Показов 7487. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Почему лучше использовать Unload, вместо End? Я заметил, что многие программисты здесь используют именно Unload.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
24.01.2017, 11:57
Ответы с готовыми решениями:

End или Unload
Не могу понять разницу между ними. Они что работает одинакова ? (помоему нет). Пажалуйста по подробнее объясните.(ответы как " почти...

Ошибка user.exe в коде: Private Sub Text1_Change() If Text1.Text = 'del' Then Unload Me End If End Sub
Подскажите, плз. Почему происходит ошибка Windows, User.exe выполнила недопустимую операцию и будет закрыта....при следующем коде: ...

Как отменить Unload формы в самом Unload'е?
По-моему всё ясно из вопроса... Private Sub Form_Unload(Cancel As Integer) Select Case _ MsgBox('В окне несохранённые данные....

8
 Аватар для Pro_grammer
6807 / 2839 / 527
Регистрация: 24.04.2011
Сообщений: 5,308
Записей в блоге: 10
24.01.2017, 13:22
Лучший ответ Сообщение было отмечено echs как решение

Решение

Было уже:
End или Unload

Замечания

При выполнении оператор End сбрасывает все переменные на уровне модуля и все статические локальные переменные во всех модулях. Чтобы сохранить значение этих переменных, используйте оператор Stop. Вы сможет затем возобновить выполнение, сохранив значение этих переменных.
Примечание Примечание

Оператор End резко останавливает выполнение кода, не вызывая событие Unload, QueryUnload или Terminate или любой другой код Visual Basic. Код, помещенный в события Unload, QueryUnload и Terminate форм и модулей класса, не выполняется. Объекты, созданные из модулей класса, уничтожаются, файлы, открытые с использованием оператора Open, закрываются, и память, использованная программой, освобождается. Ссылки на объекты, удерживаемые другими программами, становятся недопустимыми.

Оператор End предоставляет способ заставить программу остановиться. Для нормального прекращения работы программы Visual Basic следует выгрузить все формы. Программа закроется, как только не будет других программ, удерживающих ссылки на объекты, созданные из модулей открытого класса, и не будет выполняться код.
4
Регистрация: 23.10.2013
Сообщений: 5,076
Записей в блоге: 8
24.01.2017, 13:54
CharlyChaplin
End - хороший оператор, если у вас приложение использует
одну форму. А если две и более? Вот здесь вы можете
столкнуться со случаем, когда программа будет закрыта, но
не выгружена из памяти. И эта программа будет защищать
свои файлы. Вы не сумеете ими воспользоваться до тех
пор, пока не вызовите "диспетчер задач" (windows), который
выгрузит вашу программу из памяти.
...
В общем End - хороший оператор и не глядите на других.
0
 Аватар для UBUNTU
352 / 213 / 42
Регистрация: 04.02.2015
Сообщений: 1,344
24.01.2017, 18:29
Цитата Сообщение от echs Посмотреть сообщение
Вот здесь вы можете
столкнуться со случаем, когда программа будет закрыта, но
не выгружена из памяти. И эта программа будет защищать
свои файлы.
Программа из 12 форм, база. END при закрытии главного окна программы при 8 открытых окон, все нормально закрывается.
1
Регистрация: 23.10.2013
Сообщений: 5,076
Записей в блоге: 8
24.01.2017, 20:55
UBUNTU
Я не сказал, что программа обязательно будет "капризничать".
Тем не менее, у меня было несколько программ, где одна форма
скрывалась, другая открывалась.... Вот здесь без оператора
UnLoad, который и выгружал все формы из памяти - сложно
обойтись.
...
Будем откровенны: его именно для этой цели и придумали!
0
Эксперт WindowsАвтор FAQ
 Аватар для Dragokas
18031 / 7734 / 892
Регистрация: 25.12.2011
Сообщений: 11,502
Записей в блоге: 16
24.01.2017, 22:29
Лучший ответ Сообщение было отмечено CharlyChaplin как решение

Решение

Цитата Сообщение от echs Посмотреть сообщение
В общем End - хороший оператор и не глядите на других.
До поры до времени. Пока на некоторых ПК программа не начнёт падать при попытке её закрыть.
Поэтому правильно перечислить все формы и выгрузить их, а не использовать End.
А если она все равно не завершается, значит вы сами виноваты, что криво прописали код освобождения объектов, точнее не прописали вообще.

Visual Basic
1
2
3
4
5
6
7
8
9
Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
    Dim frm As Form
    For Each frm In Forms
        If Not (frm Is Me) Then
            Unload frm
            Set frm = Nothing
        End If
    Next
End Sub
3
185 / 36 / 3
Регистрация: 28.05.2015
Сообщений: 149
25.01.2017, 06:25  [ТС]
Dragokas, спасибо за код. Буду применять.
0
185 / 36 / 3
Регистрация: 28.05.2015
Сообщений: 149
10.02.2017, 06:41  [ТС]
Созрел ещё вопрос. Если в параметрах проекта настроить первым запуском не форму, а Sub Main. В нём есть условие запуска формы. Если условие не соблюдено, то форма не должна запуститься и вообще ничего не должно появиться. Можно ли в таком случае использовать End, вместо

Visual Basic
1
2
3
4
5
6
7
8
9
Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
    Dim frm As Form
    For Each frm In Forms
        If Not (frm Is Me) Then
            Unload frm
            Set frm = Nothing
        End If
    Next
End Sub
Ведь форма ещё не была загружена.
0
Заблокирован
10.02.2017, 06:58
CharlyChaplin, зачем в этом случае END?
Ведь и так ничего не загрузилось и программа благополучно закончилась.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
10.02.2017, 06:58
Помогаю со студенческими работами здесь

Excel 2013 32-bit URLDownloadToFile пишет "Compile error: only comment may appear after End Sub End Function or End Prop
Добрый день! перепробовал все варианты и не вызывается функция URLDownloadToFile: пишет "Compile error: only comment may appear...

<html> или <<<END
Здравствуйте. Не так давно мне пришлось администрировать сайт, где отображение было выполнено в виде echo &lt;&lt;&lt;_END ...

С++ или Front-end - разработка!?
Прошу прощения, что разместил эту тему здесь, а не в Talk В общем из-за учебной программы катался по разным языкам, а теперь решил...

Dot.net или front end
Здраствуйте! Подскажите пожалуйста. Я хочу задать вопрос. Возможно многим он покажется глупым, но мне нужно его задать что бы было...

Hi-Fi кинотеатры или High-End, что лучше?
Прошу спецов подсказать какой тип домашних кинотеатров лучше Hi-Fi или High-End? Необходимо для большой гостиной в коттедж.


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru