Гость
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Как завершить процедуру из другой процедуры? / 10 сообщений из 10, страница 1 из 1
20.04.2012, 15:32
    #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
20.04.2012, 15:36
    #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
20.04.2012, 15:40
    #37763303
Valll
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как завершить процедуру из другой процедуры?
Спасибо!!!
...
Рейтинг: 0 / 0
20.04.2012, 15:47
    #37763327
QValD
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как завершить процедуру из другой процедуры?
Valll,

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

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

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

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

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

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


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