Выгрузить все формы приложения

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
Lumen
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 841
Зарегистрирован: 03.12.2005 (Сб) 16:09
Откуда: Брянск

Выгрузить все формы приложения

Сообщение Lumen » 13.07.2006 (Чт) 22:32

Народ, такой вопрос... К сожалению, не смог на него найти ответ в поиске, наверное искать разучился...
Как мне по завершении работы приложения выгрузить все формы, используемые моей программой? Я конечно понимаю, что можно сделать:
Код: Выделить всё
...
Unload Form1
Unload Form2
Unload Form3
...
И так далее до бесконечности...

Но может быть есть более красивое решение этой проблемы. Заранее благодарен за ответ.
Подпись проходит рефакторинг

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Сообщение Хакер » 13.07.2006 (Чт) 22:48

Есть такая коллекция называется Forms.

Но вот вопрос. Чем End тебя не устраивает.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

keks-n
Доктор VB наук
Доктор VB наук
Аватара пользователя
 
Сообщения: 2509
Зарегистрирован: 19.09.2005 (Пн) 17:17
Откуда: г. Москва

Сообщение keks-n » 13.07.2006 (Чт) 23:00

Хакер
При вызове End не происходит событие Unload... А если нужно освободить некий ресурс, который ExipProcess'ом не освобождается автоматически, End не подходит.
Изображение

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Сообщение Хакер » 13.07.2006 (Чт) 23:02

Я ведь кажется сказал про Forms.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

Lumen
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 841
Зарегистрирован: 03.12.2005 (Сб) 16:09
Откуда: Брянск

Сообщение Lumen » 13.07.2006 (Чт) 23:06

Хакер
За Forms ОГРОМНОЕ спасибо. Я про неё и забыл... А End не устраивает, потому что в событии Unload каждой формы выполняется код (сохраняет обработанные значения на диск). То есть закрыли одну форму - она сохранила свои данные, закрыли другую - она - свои... Закрыли все формы - сохранили все данные. А End аварийно завершает прогу, не выполняя никакого сохранения... Можно было бы и с ним конечно поизвращаться, но уже найдено другое решение. Ещё раз спасибо...
Подпись проходит рефакторинг

XPAHuTEJIb
Обычный пользователь
Обычный пользователь
Аватара пользователя
 
Сообщения: 71
Зарегистрирован: 12.07.2006 (Ср) 15:04
Откуда: Новый Уренгой

Сообщение XPAHuTEJIb » 17.07.2006 (Пн) 7:21

а не пробовал перед эндом reset делать

RayShade
Scarmarked
Scarmarked
Аватара пользователя
 
Сообщения: 5511
Зарегистрирован: 02.12.2002 (Пн) 17:11
Откуда: Russia, Saint-Petersburg

Сообщение RayShade » 17.07.2006 (Пн) 9:42

XPAHuTEJIb

Какой reset? Тот что кнопкой на системнике? ;)

hCORe
VB - Экстремал
VB - Экстремал
Аватара пользователя
 
Сообщения: 2332
Зарегистрирован: 22.02.2003 (Сб) 15:21
Откуда: parent directory

Сообщение hCORe » 17.07.2006 (Пн) 10:01

Команда такая есть. Закрывает все файлы с записью данных.

Например, в данной программке при закрытии хоть "нормальном", хоть через даблклик, данные в файл запишутся.

Код: Выделить всё
Option Explicit

Private Sub Form_DblClick()
    Reset
    End
End Sub

Private Sub Form_Load()
    Open "C:\abcd.dat" For Output As #1
    Print #1, "he-he!";
End Sub

Private Sub Form_Unload(Cancel As Integer)
    Close #1
End Sub
Моду создают модоки, а распространяют модозвоны.

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Сообщение Хакер » 17.07.2006 (Пн) 11:51

XPAHuTEJIb
А ты не думал что при unload-е нужно выполнять более серьёзные задачи чем закрытие файлов... например снятие с сабклассинга?
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

XPAHuTEJIb
Обычный пользователь
Обычный пользователь
Аватара пользователя
 
Сообщения: 71
Зарегистрирован: 12.07.2006 (Ср) 15:04
Откуда: Новый Уренгой

Сообщение XPAHuTEJIb » 17.07.2006 (Пн) 12:52

2xakep:
меня вообще не волнует что делает система при анлоаде, главное чтоб программа завершилось не аварийно

2hCore: немного не точно:
Инструкция Reset закрывает все активные файлы, открытые с помощью инструкции Open, и записывает содержимое всех буферов файлов на диск.

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Сообщение Хакер » 17.07.2006 (Пн) 13:06

Ну она как раз таки завершится аварийно (с крахом IDE) если форма с сабклассингом неправильно закроется (т.е. end-ом)
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

keks-n
Доктор VB наук
Доктор VB наук
Аватара пользователя
 
Сообщения: 2509
Зарегистрирован: 19.09.2005 (Пн) 17:17
Откуда: г. Москва

Сообщение keks-n » 17.07.2006 (Пн) 13:34

Это вы сабклассите неправильно-у меня ничего не падает, даже при нажатии Stop
Изображение

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Сообщение Хакер » 17.07.2006 (Пн) 13:39

keks-n, ну мы не изобретаем там всякие хитромудрые сабклассинги с использованием PB и прочей нечести...
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

Twister
Теоретик
Теоретик
Аватара пользователя
 
Сообщения: 2251
Зарегистрирован: 28.06.2005 (Вт) 12:32
Откуда: Алматы

Сообщение Twister » 17.07.2006 (Пн) 13:43

keks-n писал(а):некий ресурс, который ExipProcess'ом не освобождается автоматически
Интересно, какие это такие ресурсы в процессе не освобождаются после его завершения? :?
А я все практикую лечение травами...

Viper
Артефакт VBStreets
Артефакт VBStreets
Аватара пользователя
 
Сообщения: 4394
Зарегистрирован: 12.04.2005 (Вт) 17:50
Откуда: Н.Новгород

Сообщение Viper » 17.07.2006 (Пн) 13:54

Ресурсы то освободяться, но ведь может быть необходимость какие-нить действия сделать перед их осовбождением
Весь мир матрица, а мы в нем потоки байтов!

Amed
Алфизик
Алфизик
 
Сообщения: 5346
Зарегистрирован: 09.03.2003 (Вс) 9:26

Сообщение Amed » 17.07.2006 (Пн) 13:57

Уже в первом ответном посте был дан правильный ответ. Все прочие считаю флудом.


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

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

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 95

    TopList