Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Прервать выполнения цикла [D6, WinXP]


jenbond ©   (2004-09-16 19:53:00) 

Мастера подскажите как можно прервать выполнения цикла нажатием на клавишу или каким-либо действием?


jenbond   (2004-09-16 21:13:00) [1]

Всем большое спасибо разобрался!


_student   (2004-09-16 21:06:00) [2]

Нет. Нужно создать экземпляр класса у которого есть метод Terminate


jenbond   (2004-09-16 21:01:00) [3]

Вот я создал класс
type
 test = class(TThread)
 private
   Answer:integer;
 protected
   procedure Execute; override;
   procedure GiveAnswer;
 end;
Мне еще как-то нужно создать процедуру Terminate?


_student   (2004-09-16 20:55:00) [4]

MyThread.Terminate - остановка потока


jenbond   (2004-09-16 20:52:00) [5]

Так Terminate закрывает все приложение а мне нужно остановить только поток!


_student   (2004-09-16 20:38:00) [6]

Terminate не работает чтоли?


jenbond   (2004-09-16 20:31:00) [7]

Я уже создал дополнительный поток, запускаю его но не могу ни как найти метод коректного принудительного завершения.
Подскажите?


Anatoly Podgoretsky   (2004-09-16 20:07:00) [8]

Break


_student   (2004-09-16 20:06:00) [9]

Смотри
> Sergey Kaminski ©


Sergey Kaminski   (2004-09-16 20:05:00) [10]

Ну так в чем вопрос-то?


jenbond   (2004-09-16 20:04:00) [11]

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


_student   (2004-09-16 20:01:00) [12]


> jenbond

Конкретизируй вопрос


Sergey Kaminski   (2004-09-16 20:00:00) [13]

А если цикл затягивается надолго (т.е., там более-менее серьезные действия с точки зрения потребления ресурсов и времени), имеет смысл вынести его в отдельный поток(нить). Потом управлять действиями запущеной нити. Хотя бы через ту же глобальную переменную.


Sergey Kaminski   (2004-09-16 19:56:00) [14]

Да по-разному можно.
Например, завести глоб. переменную Boolean. В цикле поставить Application.ProcessMessagesи проверку значения переменной. В обработчике нажатия клавиши или экранной кнопки менять значение глобальной переменной. Все.


Наверх

Титульная страница Поиск, карта сайта Написать письмо