powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Как завершить процедуру из другой процедуры?
10 сообщений из 10, страница 1 из 1
Как завершить процедуру из другой процедуры?
    #37763276
Valll
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Имеется такой пример:

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
Sub Start() ' первая процедура

   Finish 'вызывает эту процедуру

   'какой то код
   .
   .
   .
end Sub

Sub Finish() 'вторая процедура должна прервать первую!

   if 2+2=4 Then
      Msgbox("Прервать выполнение процедуры Start")
   end if

end Sub




Процедура Start вызывает процедуру Finish. В этой процедуре идёт проверка и если происходит событие она должна закрыться сама и прекратить выполнение первой процедуры Start. Как это сделать?
...
Рейтинг: 0 / 0
Как завершить процедуру из другой процедуры?
    #37763292
Фотография BelowZero
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Valll,

как вариант, можно
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
dim a as Boolean
Sub Start() ' первая процедура
Finish 'вызывает эту процедуру
if a = true then exit sub
'какой то код
   .
   .
   .
end Sub

Sub Finish() 'вторая процедура должна прервать первую!
   if 2+2=4 Then
a = true
      Msgbox("Прервать выполнение процедуры Start")
exit sub
   end if

end Sub
...
Рейтинг: 0 / 0
Как завершить процедуру из другой процедуры?
    #37763303
Valll
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо!!!
...
Рейтинг: 0 / 0
Как завершить процедуру из другой процедуры?
    #37763327
QValD
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Valll,

целесообразнее сделать процедуру Finish булевой функцией
...
Рейтинг: 0 / 0
Как завершить процедуру из другой процедуры?
    #37763345
Фотография Игорь Горбонос
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
> Автор: Valll
> Процедура Start вызывает процедуру Finish. В этой процедуре идёт проверка и если происходит событие она должна
> закрыться сама и прекратить выполнение первой процедуры Start. Как это сделать?

Можно бросить исключение, которое приведёт к завершению процедуры

Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Как завершить процедуру из другой процедуры?
    #37763382
TpaBka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
правильный ответ
QValDValll,

целесообразнее сделать процедуру Finish булевой функцией
...
Рейтинг: 0 / 0
Как завершить процедуру из другой процедуры?
    #37763391
Valll
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1. На счёт булевой функции, более менее понятно. Единственно как потом процедура Start увидит результат TRUE этой булевой функции?

2. На счёт исключения ничего не понял.

Спасибо за помощь!
...
Рейтинг: 0 / 0
Как завершить процедуру из другой процедуры?
    #37763417
TpaBka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Valll1. На счёт булевой функции, более менее понятно. Единственно как потом процедура Start увидит результат TRUE этой булевой функции?

2. На счёт исключения ничего не понял.

Спасибо за помощь!

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
Sub Start() ' первая процедура
if Finish = true then exit sub
'какой то код
   .
   .
   .
end Sub

Function Finish() As Boolean'вторая процедура должна прервать первую!
   if 2+2=4 Then
Finish= true
      Msgbox("Прервать выполнение процедуры Start")
exit sub
   end if

end Sub
...
Рейтинг: 0 / 0
Как завершить процедуру из другой процедуры?
    #37763598
Фотография Игорь Горбонос
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Valll2. На счёт исключения ничего не понял.

Примерно так
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
Sub Start()
On Error GoTo labErr
' Какой-то код
Call Finish
MsgBox "Так тоже работает"
' Какой-то код
Exit Sub
labErr:
' Здесь вывод в лог и действия в случае ошибки
MsgBox "Прервали работу - " & Err.Description
End Sub

Sub Finish()
If Rnd() > 0.5 Then
    Err.Raise vbObjectError + 1, , "Проверка работы"
End If
End Sub

...
Рейтинг: 0 / 0
Как завершить процедуру из другой процедуры?
    #37764053
Valll
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо. Советы дельные!
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Как завершить процедуру из другой процедуры?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]