Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 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
1-10811
Makhanev A.S.
2003-08-22 00:33
2003.09.04
Объясните, пожалуйста, про события...


14-10953
Soft
2003-08-15 17:03
2003.09.04
Во многих конференциях драки начинаются!


14-10875
Kost
2003-08-14 22:15
2003.09.04
Сайты


1-10744
Jacob
2003-08-18 12:23
2003.09.04
Сделать невидимым столбец в TListView


1-10751
Евгыш
2003-08-25 13:09
2003.09.04
Предотвращение выгрузки COM сервера





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский