Показать сообщение отдельно
  #11  
Старый 16.11.2012, 12:01
Аватар для poli-smen
poli-smen poli-smen вне форума
Профессионал
 
Регистрация: 06.08.2012
Адрес: Кривой Рог
Сообщения: 1,791
Версия Delphi: Delphi 7, XE2
Репутация: 4415
По умолчанию

Цитата:
Сообщение от morebeauty
Есть еще способы? Может, есть команда, которая разом прерывает выполнения всех функций (в том числе и рекурсивных) и переходит в режим ожидания действий пользователя?
Исключение "разом прерывает выполнения всех функций (в том числе и рекурсивных)" вплоть до последнего обработчика исключения except.

В примере ниже "Beep" никогда не вызовется, так как первый же "Abort" прервёт одним махом все вложенные (рекурсивные) вызовы и перейдёт "в режим ожидания действий пользователя" (если конечно не встретится другого обработчика except):
Код:
procedure TForm1.Button4Click(Sender: TObject);

  procedure Recursion(Level: Integer);
  begin
    if Level = 100 then Abort;
    Recursion(Level + 1);
    Beep;
  end;

begin
  Recursion(0);
end;
Ответить с цитированием