Private Sub Form_Load()
Dim res As String
res = "c"
Select Case res
Case a
MsgBox "Выплняем план А"
Case "b"
MsgBox "Выполням план B"
Case "c"
MsgBox "Провал! Завершаем операцию!"
'Код завершения программы. Нужно оставить только один вариант
'Unload Me
End
End Select
'Код который должен запускаться, если проверка прошла
MsgBox "Основной код программы"
End Sub
Gigahard писал(а):В данном случае End решает.
Private Sub Form_Load()
Dim res As String
res = "c"
if res = "c" then
MsgBox "Провал! Завершаем операцию!"
Unload Me
else
Select Case res
Case a
MsgBox "Выплняем план А"
Case "b"
MsgBox "Выполням план B"
End Select
'Код который должен запускаться, если проверка прошла
MsgBox "Основной код программы"
end if
End Sub
Кстати вылет IDE происходит только если End содержится в одной процедуре со снятием хука или если в эта процедура вызывает другую в которой содержится End.
Н-да... А ты никогда не задумывался, какая такая процедура вызвала процедуру Form_Unload? Неужели твоя самая "хучная" процедура?
А теперь представь, что в form_unload ты вызываеш end. Отладчик выкидывает код "хучной" процедуры... Но Вероятно, ему еще надо почистить стэк за form_unload и тут он такыется на указатель того, чего уже нет
хочу в который раз заметить, что перед End происходит восстановление хода процедуры
Gigahard писал(а):Не столь важно, как и когда срабатывает Unload, важно то, что он далеко не всегда применим. Это скорее вопрос о судьбе и роли End. Например в приведенной ситуации экстренного завершения загрузки формы. А такая ситуация может возникнуть. Не всегда такие ситуации можно обработать до загрузки формы в модуле.
Ты вообще код смотрел, который я привёл?
Приходится хук отключать на время разработки, не забыть бы потом включить
Но почему он вылетает, когда нормальный ход процедуры восстановлен после снятия хука?
Как такое может произойти, если End вызывался не из тела хучной процедуры, а из основной, когда хук уже был снят и по идее упоминания о нем уже нет...?
то вылет по идее должен был бы происходить во всех случаях применения End
Сейчас этот форум просматривают: AhrefsBot и гости: 25