Про не простой выход...

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

Про не простой выход...

Сообщение Terarist » 31.03.2003 (Пн) 19:31

Чтобы выйти через крестик я исользую: (это в ВБ)
Private Sub Form_Unload(cancel As Integer)
spros
End Sub
Private Sub spros()
retSpros = MsgBox("Âû äåéñòâèòåëüíî õîòèòè âûéòè", vbQuestion +_ vbYesNo, "Âûõîä ? ? ?")
If retSpros = 6 Then
End
End If
End Sub
так вот почему когда я жму "нет", он у меня всёравно выходит???

sanches
El compañero
El compañero
 
Сообщения: 823
Зарегистрирован: 09.01.2003 (Чт) 3:58
Откуда: Р_О_С_С_И_Я ! (Питер)

Сообщение sanches » 31.03.2003 (Пн) 19:59

Unload никак не влияет, он только происходит перед закрытием. Юзай QueryUnload
Код: Выделить всё
Private Sub Form1_QueryUnload(<че-то там>)
Cancel = vbCancel (=0)
End Sub
- вот тогда выхода не будет
Изображение

Cyrax
Cyberninja
Cyberninja
Аватара пользователя
 
Сообщения: 891
Зарегистрирован: 25.04.2002 (Чт) 21:20
Откуда: Magnitogorsk, Russia

Сообщение Cyrax » 01.04.2003 (Вт) 5:42

вот правильный вариант. точно работает...

Код: Выделить всё
Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
    Dim retSpros As Integer
    retSpros = MsgBox("Выйти?", vbQuestion Or vbYesNo, "Вопрос???")
    If retSpros = vbNo Then Cancel = True
End Sub

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 01.04.2003 (Вт) 9:25

Отменить закрытие можно и в Unload (также установить Cancel=True). Чем удобнее QueryUnload -- можно анализировать причину, вызвавшую Unload; если происходит завершение сессии, то понятно что ничего блокировать не надо.
Lasciate ogni speranza, voi ch'entrate.

Trojan Lord
Обычный пользователь
Обычный пользователь
 
Сообщения: 66
Зарегистрирован: 05.04.2003 (Сб) 19:07

Сообщение Trojan Lord » 05.04.2003 (Сб) 20:04

if UnloadMode=3 then 'Поступила команда перезагрузки или _ выключения компа

end if

Max!
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 502
Зарегистрирован: 03.04.2003 (Чт) 22:08
Откуда: Литва

Сообщение Max! » 05.04.2003 (Сб) 20:53

Простите что вмешиваюсь! А если через кнопку можно-ли использовать этот код и будет-ли он работать, код:
Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
Dim retSpros As Integer
retSpros = MsgBox("Выйти?", vbQuestion Or vbYesNo, "Вопрос???")
If retSpros = vbNo Then Cancel = True
End If

End Sub

:?:
Max!

Terarist
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 154
Зарегистрирован: 03.02.2003 (Пн) 18:28
Откуда: Russia

Сообщение Terarist » 06.04.2003 (Вс) 9:46

При нажатии кнопки достаточно будет написать только:
Unload me


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

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

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

    TopList