События при выгрузке формы

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

События при выгрузке формы

Сообщение Алексей.Ф. » 21.02.2005 (Пн) 20:44

Всем привет. Кто знает, чем отличаются события Unload и Query Unload? :?:

Sebas
Неуловимый Джо
Неуловимый Джо
Аватара пользователя
 
Сообщения: 3626
Зарегистрирован: 12.02.2002 (Вт) 17:25
Откуда: столько наглости такие вопросы задавать

Сообщение Sebas » 21.02.2005 (Пн) 21:29

query - это запрос на разрешение закрытия
- Я никогда не понимал, почему они приходят ко мне чтобы умирать?

sebas<-@->mail.ru

Алексей.Ф.
Обычный пользователь
Обычный пользователь
 
Сообщения: 59
Зарегистрирован: 09.09.2004 (Чт) 20:55
Откуда: г. Ставрополь

Сообщение Алексей.Ф. » 21.02.2005 (Пн) 22:36

query - это запрос на разрешение закрытия

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

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

Сообщение Amed » 21.02.2005 (Пн) 23:16

Непосредственно перед выгрузкой происходит событие Unload. Событие QueryUnload происходит чуть раньше, как только поступит запрос на выгрузку формы...
Последний раз редактировалось Amed 21.02.2005 (Пн) 23:27, всего редактировалось 1 раз.

A.A.Z.
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
 
Сообщения: 3035
Зарегистрирован: 30.06.2003 (Пн) 13:38

Сообщение A.A.Z. » 21.02.2005 (Пн) 23:18

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

A.A.Z.
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
 
Сообщения: 3035
Зарегистрирован: 30.06.2003 (Пн) 13:38

Сообщение A.A.Z. » 21.02.2005 (Пн) 23:20


HotKitten
Дятил
Дятил
Аватара пользователя
 
Сообщения: 400
Зарегистрирован: 24.01.2005 (Пн) 21:48
Откуда: из дома

Сообщение HotKitten » 21.02.2005 (Пн) 23:21

я всегда пишу Unload, с проблемами пока не сталкивался
Изображение

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

Сообщение Amed » 21.02.2005 (Пн) 23:23

[off]М-да... Что-то я не в тему ответил ;(
Сейчас чуть подправим ;)[/off]

Алексей.Ф.
Обычный пользователь
Обычный пользователь
 
Сообщения: 59
Зарегистрирован: 09.09.2004 (Чт) 20:55
Откуда: г. Ставрополь

Сообщение Алексей.Ф. » 21.02.2005 (Пн) 23:43

При QueryUnload можно узнать, кто и как закрывает приложение (юзер, винда и т.п.)

А как узнать :?:

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

Сообщение Amed » 21.02.2005 (Пн) 23:50

По ссылочкам мы ходить не привыкли? Ну ладно...

MSDN + A.A.Z. писал(а):QueryUnload Event
See Also Example Applies To

Occurs before a form or application closes. When an MDIForm object closes, the QueryUnload event occurs first for the MDI form and then in all MDI child forms. If no form cancels the QueryUnload event, the Unload event occurs first in all other forms and then in an MDI form. When a child form or a Form object closes, the QueryUnload event in that form occurs before the form's Unload event.

Syntax

Private Sub Form_QueryUnload(cancel As Integer, unloadmode As Integer)

Private Sub MDIForm_QueryUnload(cancel As Integer, unloadmode As Integer)

The QueryUnload event syntax has these parts:

Part Description
cancel An integer. Setting this argument to any value other than 0 stops the QueryUnload event in all loaded forms and stops the form and application from closing.
unloadmode A value or constant indicating the cause of the QueryUnload event, as described in Return Values.


Return Values

The unloadmode argument returns the following values:

Constant Value Description
vbFormControlMenu 0 The user chose the Close command from the Control menu on the form.
vbFormCode 1 The Unload statement is invoked from code.
vbAppWindows 2 The current Microsoft Windows operating environment session is ending.
vbAppTaskManager 3 The Microsoft Windows Task Manager is closing the application.
vbFormMDIForm 4 An MDI child form is closing because the MDI form is closing.
vbFormOwner 5 A form is closing because its owner is closing.


These constants are listed in the Visual Basic (VB) object library in the Object Browser.

Remarks

This event is typically used to make sure there are no unfinished tasks in the forms included in an application before that application closes. For example, if a user has not yet saved some new data in any form, your application can prompt the user to save the data.

When an application closes, you can use either the QueryUnload or Unload event procedure to set the Cancel property to True, stopping the closing process. However, the QueryUnload event occurs in all forms before any are unloaded, and the Unload event occurs as each form is unloaded.

Алексей.Ф.
Обычный пользователь
Обычный пользователь
 
Сообщения: 59
Зарегистрирован: 09.09.2004 (Чт) 20:55
Откуда: г. Ставрополь

Сообщение Алексей.Ф. » 22.02.2005 (Вт) 0:03

В MSDN я посмотрел, но я по аглицки плохо. :cry:

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

Сообщение Amed » 22.02.2005 (Вт) 0:08

UnloadMode может принимать следующие значения:

Код: Выделить всё
vbFormControlMenu = 0
'Это значит, что юзер нажал "закрыть" в панельке меню приложения
vbFormCode = 1
'Это значит, что окно закрывается из кода
vbAppWindows = 2
'Это значит, что выполняется выход из Windows
vbAppTaskManager = 3
'Это значит, что программа закрывается из Task Manager'а
vbFormMDIForm = 4
'Это значит, что закрывается дочернее MDI окно (вслед за родительским)
vbFormOwner = 5
'Это значит, что форма закрывается, т.к. закрывается её [i]владелец[/i]

Алексей.Ф.
Обычный пользователь
Обычный пользователь
 
Сообщения: 59
Зарегистрирован: 09.09.2004 (Чт) 20:55
Откуда: г. Ставрополь

Сообщение Алексей.Ф. » 22.02.2005 (Вт) 0:22

Мерси. :)


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

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

Сейчас этот форум просматривают: SemrushBot и гости: 148

    TopList