Как принудительно прекратить выполнение процедуры?

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

Как принудительно прекратить выполнение процедуры?

Сообщение AntonSh » 03.05.2005 (Вт) 15:05

Здравствуйте!Прошу помощи в следующем: у меня программка по нажатию на первую командную кнопку записывает в цикле строки в текстовый файл на диск. Запись происходит в событии Command1_Click. Я хочу при помощи той же кнопки или другой остановить этот процесс. Как мне поступить? Спасибо

Александр80
Bonachón
Bonachón
 
Сообщения: 659
Зарегистрирован: 20.03.2004 (Сб) 23:50
Откуда: г.Москва

Сообщение Александр80 » 03.05.2005 (Вт) 15:24

exit sub, Return если я правильно понял... :?

Александр80
Bonachón
Bonachón
 
Сообщения: 659
Зарегистрирован: 20.03.2004 (Сб) 23:50
Откуда: г.Москва

Сообщение Александр80 » 03.05.2005 (Вт) 15:27

Короче:

Sub
Немедленный выход из процедуры Sub, в которой находится этот элемент. Выполнение продолжается с команды, следующей непосредственно за оператором, вызвавшим процедуру Sub. Exit Sub может использоваться только внутри процедуры Sub.

Function
Немедленный выход из процедуры Function, в которой находится этот элемент. Выполнение продолжается с оператора, следующего непосредственно за оператором, вызвавшим процедуру Function. Exit Function может использоваться только внутри процедуры Function.

For
Немедленный выход из цикла For, в котором находится этот элемент. Выполнение продолжается с оператора, следующего за оператором Next. Exit For может использоваться только внутри цикла For...Next или For Each...Next. При использовании во вложенных циклах For, Exit For передает управление в ближайший внешний цикл.

Exit Sub, Exit Function и Exit Property могут находиться в тексте сообщения процедуры где нужно и сколько нужно раз. Они могут находиться даже внутри оператора управления, например If...Then...Else. Эти операторы полезны, когда процедура выполнила все, что необходимо, и может немедленно возвратить результат.


И так далее... :wink: Идея понятна?

AntonSh
Начинающий
Начинающий
 
Сообщения: 3
Зарегистрирован: 03.05.2005 (Вт) 14:59

Сообщение AntonSh » 03.05.2005 (Вт) 15:33

Прошу прощения, но видно я не так объяснил... :cry:
Во время работы процедуры Command1_Click, т.е. заполнения файла строчками, я не могу нажать никакую другую кнопку - программа не воспринимает нажатия на форме до окончания цикла. А хотелось бы прервать выполнение, нажав на другую кнопку на форме.

Александр80
Bonachón
Bonachón
 
Сообщения: 659
Зарегистрирован: 20.03.2004 (Сб) 23:50
Откуда: г.Москва

Сообщение Александр80 » 03.05.2005 (Вт) 15:37

вставь в процедуру DoEvents :wink: и все будет ок...

AntonSh
Начинающий
Начинающий
 
Сообщения: 3
Зарегистрирован: 03.05.2005 (Вт) 14:59

Сообщение AntonSh » 03.05.2005 (Вт) 15:40

Спасибо, дальше найду сам.

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 03.05.2005 (Вт) 18:53

Кроме собственно DoEvents, нужно ещё завести флаг, который устанавливать по клику второй кнопки и время от времени проверять в Command1_Click.
Изображение


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

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

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

    TopList  
cron