Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.47 MB
Время: 0.022 c
14-1122577918
SoftX
2005-07-28 23:11
2005.08.21
Уйду я от вас, злые вы...


1-1122904145
BFG9k
2005-08-01 17:49
2005.08.21
Перемещение компонента по форме


14-1122546006
BrenD
2005-07-28 14:20
2005.08.21
Вычислить сумму


14-1122409786
Piter
2005-07-27 00:29
2005.08.21
2 * 2 = 5


1-1123147390
Fanny
2005-08-04 13:23
2005.08.21
type M = (an,it,cr) - надо превратить переменную типа M в string




   Наверх