Главная страница
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.017 c
1-10768
Sam
2003-08-24 12:50
2003.09.04
DLL


14-10888
Study
2003-08-14 13:15
2003.09.04
2 вопроса


1-10722
Zheks
2003-08-20 13:22
2003.09.04
Перенесение файла с изменением имени.


3-10557
Rel_
2003-08-11 14:17
2003.09.04
Работа с датой


14-10943
Волшебник
2003-08-16 00:23
2003.09.04
Что требуется знать для создания проекта типа combats.ru ???