Форум: "Основная";
Текущий архив: 2003.09.04;
Скачать: [xml.tar.bz2];
ВнизПрерывание функции Найти похожие ветки
← →
Borgir (2003-08-25 08:36) [0]Подскажите пожалуйста, как можно прервать выполнение какой-либо функции не из тела этой самой функции? То есть например, у меня выполняется некая вункция. Мне надо чтоб при нажатии определенной кнопки эта функция прекращала выполненение.
Заренее спасибо.
← →
Palladin (2003-08-25 08:48) [1]Чувствую в этой вункции которую нужно прервать, крутится некий цикел. Так? Скорее всего так.
Что требуется?
1 Требуется некий глобальный флаг, инициализированый в false и устанавливаемый при нажатии на кнопку в true.
2 Требуется в цикле Application.ProcessMessages.
3 Требуется в цикле if флаг then break (exit по вкусу)
Если все совсем не так, то однако приводи более детализированное описание проблемы.
← →
Calm (2003-08-25 08:51) [2]Может быть помогут исключения и их перехваты?
← →
default (2003-08-25 08:59) [3]в сабже столько тупостей...или на крайняк неточностей
← →
Song (2003-08-25 09:25) [4]Abort - для прерывания функции и работы вызвавшего её обработчика
Exit - просто выход из текущей функции
← →
Palladin (2003-08-25 10:02) [5]
> Song © (25.08.03 09:25) [4]
Однако то что ты написал это одно и тоже.
Abort возбуждает исключение EAbort и управление в блоке try finally переходит соответственно на finally, в то время как exit никуда не преходит внутри процедуры кроме как на конец...
← →
Song (2003-08-25 10:14) [6]Нет, Exit тоже попадает на finally, смотри:
Exits from the current procedure.
Unit
System
Category
flow control routines
procedure Exit;
Description
The Exit procedure immediately passes control away from the current procedure. If the current procedure is the main program, Exit causes the program to terminate.
Exit will cause the calling procedure to continue with the statement after the point at which the procedure was called.
Note: Exit passes control away from the current procedure, not merely the current block. But Exit does not violate the flow of control dictated by a try..finally construct; if Exit is called inside the try clause, the finally clause is still executed.
Я говорил, что у Exit и Abort разные цели. Один просто из текущей процедуры выходит, а второй отменяет всю цепочку вызовов.
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2003.09.04;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.01 c