Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Выход из рекурсии, по желанию usera / 3 сообщений из 3, страница 1 из 1
07.08.2003, 12:55
    #32229899
FORT
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выход из рекурсии, по желанию usera
Помогите.
Есть простая рекурсия по поиску файла везде. Нужно, чтобы пользователь мог прекратить её выполнение по желанию. Как определить, что произошло нажатие кнопки, мыши ....
...
Рейтинг: 0 / 0
07.08.2003, 13:05
    #32229915
ValeryR
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выход из рекурсии, по желанию usera
К сожалению не знаю точно как это будет выглядить на Delphi, но общий подход такой:
-либо выполнять рекурсию в отдельном потоке, и следить за каким-нибудь событием, выставляемым по нажатию Cancel в основном потоке приложения
-либо делать всё в одном потоке, но периодически вызывать отработку сообщений
В обоих случаях юзер-интерфейс не будет блокироваться.
...
Рейтинг: 0 / 0
07.08.2003, 14:36
    #32230055
MrAlex
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выход из рекурсии, по желанию usera
Ну типа так:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
Var Exit : Integer ;

Function Cycle() ;
Begin
  Exit :=  0  ;
  Uslovie :=  0  ;
  While Uslovie =  0  Do
  Begin
    Exit :=  0  ;
    If Exit =  1  Then
    Begin
      Uslovie :=  1  ;
    End ;
    Application.ProcessMessages() ;
  End ;
  ShowMessage('Exit !!!') ;
End ;

Procedure TForm1.Button1Click(AOwner : TObject) ;
Begin
  Exit :=  1  ;
End ;


Application.ProcessMessages() - будет делать прокачку помпы сообщений, т.е. ты сможешь нажать на кнопку Button1, которая и задаст условие выхода из цикла...
...
Рейтинг: 0 / 0
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Выход из рекурсии, по желанию usera / 3 сообщений из 3, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]