Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2005.08.21;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 1.23 c
4-1119515376
MegaVolt
2005-06-23 12:29
2005.08.21
Можно ли по коду сообщения получить его название?


6-1115896255
DmitryMN
2005-05-12 15:10
2005.08.21
Проблема с пересылкой строк.


4-1119913987
Дмитрий Д.
2005-06-28 03:13
2005.08.21
Управление иконками Рабочего стола


4-1120060152
Alex_Korn
2005-06-29 19:49
2005.08.21
Время создания ключа в реестре


1-1122906825
Starcom
2005-08-01 18:33
2005.08.21
Как в приложении вызвать процедуру для вывода изображения из RES





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский