Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.09.04;
Скачать: CL | DM;

Вниз

Прерывание функции   Найти похожие ветки 

 
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;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.016 c
7-11005
xmapa
2003-06-19 16:54
2003.09.04
TPageControl


14-10884
DeMoN-777
2003-08-14 16:26
2003.09.04
Забыл что писать


14-10885
Calm
2003-08-13 10:31
2003.09.04
Округление чисел. Неужели ТАК правильно???


1-10668
Sirus
2003-08-25 11:33
2003.09.04
Нужно событие типа AfterFormShow???


3-10572
Denkop
2003-08-14 12:46
2003.09.04
Связи посредством SQL