Главная страница
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.022 c
1-10812
JohnJ
2003-08-21 01:42
2003.09.04
Атрибуты файла


3-10638
SJ-79
2003-08-11 21:17
2003.09.04
Database Login


1-10737
Serval
2003-08-20 07:49
2003.09.04
Запись значения в ячейку Excel


1-10673
DVP1
2003-08-21 10:25
2003.09.04
Как в Delphi7 SQL-запросе сделать условие с использованием функци


1-10746
Nucl
2003-08-19 00:55
2003.09.04
Управление ScrollBars в StringGrid e