Модераторы: Snowy, MetalFan, bems, Poseidon
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как прервать цикл кнопкой на форме? прога по вычпрактике 
V
    Опции темы
San4o_Pan4o
Дата 25.3.2009, 10:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 70
Регистрация: 16.12.2007

Репутация: нет
Всего: нет



Всем здрасьте! Есть прога по вычислительным методам, решает систему + одновременно рисует график погрешности. Все это происходит в внутри большого цикла while(). Цикл может тянутся долго, и хочется иметь возможность его остановить в любой момент, типа кликнул кнопочку и оно стопанулось. Как можно сделать, подскажите плиз. И, если можно, с кодом..
PM MAIL   Вверх
Frees
Дата 25.3.2009, 11:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2233
Регистрация: 2.12.2005
Где: Екатеринбург

Репутация: 16
Всего: 54



Application.ProcessMessage;

и флаг для прекращения цикла


--------------------
Кольцов Виктор Владимирович
PM MAIL ICQ   Вверх
vladimir74
Дата 25.3.2009, 11:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 241
Регистрация: 28.11.2006

Репутация: нет
Всего: 3



Код

while.....
   ........
   ........
   Application.ProcessMessages;
end:

procedure TForm1.ButtonClick(Sender: TObject);
begin
// условие окончания цикла
end;

--------------------
* В доме помешанного не говорят о миксере.* На любой Ваш вопрос у меня есть любой мой ответ.
PM MAIL   Вверх
Sanek123
Дата 25.3.2009, 11:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 201
Регистрация: 22.10.2008

Репутация: нет
Всего: нет



По моему можно воспользоваться кострукцией repeat ... until
типа:

Repeat
...
цикл
...
until button.click;

цикл будет при выполнении нового круга проверять не была ли нажата кнопка стопа.
--------------------
Вас разыскивают бойцы 139-го порта...
PM MAIL   Вверх
Frees
Дата 25.3.2009, 11:44 (ссылка)    | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2233
Регистрация: 2.12.2005
Где: Екатеринбург

Репутация: 16
Всего: 54



Repeat
...
цикл//во тут у тебя прога зависнет и не сможеш ты ничего нажать
...
until button.click;


--------------------
Кольцов Виктор Владимирович
PM MAIL ICQ   Вверх
THandle
Дата 25.3.2009, 16:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Хранитель Клуба
Group Icon
Награды: 1



Профиль
Группа: Админ
Сообщений: 3639
Регистрация: 31.7.2007
Где: Moscow, Dubai

Репутация: 50
Всего: 372



Никаких флагов, никаких циклов, использовать следует потоки.

http://forum.vingrad.ru/index.php?showtopi...t&p=1757937
http://forum.vingrad.ru/forum/topic-220051...25BA/index.html
PM   Вверх
San4o_Pan4o
Дата 26.3.2009, 07:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 70
Регистрация: 16.12.2007

Репутация: нет
Всего: нет



всем спасибо, ProcessMessages помоглоsmile
тему можно прикрыть)
PM MAIL   Вверх
Frees
Дата 26.3.2009, 07:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2233
Регистрация: 2.12.2005
Где: Екатеринбург

Репутация: 16
Всего: 54



Цитата(San4o_Pan4o @  26.3.2009,  09:21 Найти цитируемый пост)
всем спасибо, ProcessMessages помоглоsmile

это решение для начинающих, не совсем удобное, например попробуй закрыть приложение когда выполняется цикл.

если хочеш сделать все правельно кури TThread и слушай THandle, 



--------------------
Кольцов Виктор Владимирович
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Для новичков"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0492 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.