Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.08.21;
Скачать: CL | DM;

Вниз

Как сделать прерывание цикла в программе при нажатии на кнопку?   Найти похожие ветки 

 
JIuradfsd   (2005-08-01 15:59) [0]

Есть цикл вида Repeat...Until;
НА форме есть кнопка - прекратить расчет. ПРи нажатию на нее программа должна выйти из цикла.
Сейчас написанно следующее:

Button1:
PrekrRach:=true;

В Цикле:
..
Until PrekrRach=true;

Но во время выполнения кода я не могу кликнуть на кнопку....
Помниться я уже про это спрашивал мне посоветоваали добавить в код строчку:
Application.ProcessMessages;
и что-то еще.... вот что еще?


 
Ega23 ©   (2005-08-01 16:00) [1]

Перед Until - Application.ProcessMessages   ?


 
isasa ©   (2005-08-01 16:03) [2]

repeat
...
until...
в отдельном треде, тогда кнопку нажмешь.


 
Fay ©   (2005-08-01 16:04) [3]

... ещё условие выхода из цикла, блин!


 
begin...end ©   (2005-08-01 16:36) [4]

> JIuradfsd   (01.08.05 15:59)
> Until PrekrRach=true

Это чревато плохими последствиями. Пишите просто Until PrekrRach.


 
JIuradfsd   (2005-08-01 16:44) [5]

Помоему я хреново обьяснил что никто не понял.
Для выхода из цикла необходимо выполнение условия:
Until PrekrRach=true
.....
НО !!!! НЕОБХОДИМО КАК ТО ПРИСВОИТЬ переменной PrekrRach значение true. ПРисвыоение же идет при наждатии на кнопку:

procedure Tfrmmain.CmdStopRachClick(Sender: TObject);
begin
StopRach:=true;
end;


НО ПРОБЛЕМА В ТОМ что при запуске программы происходит нерперывное выполнение цикла, и как следствие, на кнопку я нажать просто физически не могу - приложение как бы подвисает. Так вот что сделать, чтобы я нажать мог?


 
Lexer ©   (2005-08-01 16:48) [6]

> JIuradfsd   (01.08.05 16:44) [5]

см. [1] Ega23 ©   (01.08.05 16:00)

а при нажатии на кнопку меняешь значение переменной PrekrRach


 
Юрий Зотов ©   (2005-08-01 16:51) [7]

> JIuradfsd   (01.08.05 16:44) [5]

Вам ответили сразу же (см. [1]). Неплохо бы быть внимательнее.


 
surkis   (2005-08-01 16:55) [8]

создаёшь новый TTread на Execute ставишь свой обработчик и он будет обрабатываться паралельно с форменым потоком так что кнопка будет нажиматься а по клику выход из Tread


 
JIuradfsd   (2005-08-01 17:13) [9]

Благодарю!
Просчто в конце сообщения Ega23 был поставлен знак вопроса. А подумал что человвек не понял вопроса



Страницы: 1 вся ветка

Текущий архив: 2005.08.21;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.052 c
4-1120122127
Никита
2005-06-30 13:02
2005.08.21
Как получить список всех дисков?


14-1122888356
ocean
2005-08-01 13:25
2005.08.21
Старый шрифт


1-1122983493
DeVid
2005-08-02 15:51
2005.08.21
Как отловить событие нажатия Ctrl+Alt+<буква>?


4-1120199652
Aldi
2005-07-01 10:34
2005.08.21
Как в Делфи получить список запущенных процессов?


1-1123058496
Aleksandr.
2005-08-03 12:41
2005.08.21
Как перевести соотношение точек объекта к точкам принтера?