Главная страница
    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
Время: 0.044 c
3-1121247715
Ильин Александр
2005-07-13 13:41
2005.08.21
падает IDAPI32


1-1123147749
Dust
2005-08-04 13:29
2005.08.21
помогите разобраться с Critical Sections


3-1121004029
Ling
2005-07-10 18:00
2005.08.21
Zeos и запрс из нескольких частей


14-1122453914
Slider007
2005-07-27 12:45
2005.08.21
Кем я хочу стать когда я буду большим


14-1122722534
Knight
2005-07-30 15:22
2005.08.21
Нужен "шпиён" за 1с...





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