Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.10.03;
Скачать: CL | DM;

Вниз

Прервать выполнения цикла   Найти похожие ветки 

 
jenbond   (2004-09-16 19:53) [0]

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


 
Sergey Kaminski ©   (2004-09-16 19:56) [1]

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


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

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


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


> jenbond

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


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

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


 
Sergey Kaminski ©   (2004-09-16 20:05) [5]

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


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

Смотри
> Sergey Kaminski ©


 
Anatoly Podgoretsky ©   (2004-09-16 20:07) [7]

Break


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

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


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

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


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

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


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

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


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

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


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

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


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

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



Страницы: 1 вся ветка

Текущий архив: 2004.10.03;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.022 c
8-1089582914
d10
2004-07-12 01:55
2004.10.03
Помогите с DirectDraw от JEDI


1-1095331130
Users
2004-09-16 14:38
2004.10.03
Внедрение в EXE CRC. Проблема с маяком


3-1094199462
Влад
2004-09-03 12:17
2004.10.03
Как прочитать данные из TSDQuery/TIBQuery?


4-1092436038
Jetus
2004-08-14 02:27
2004.10.03
Нацепить свою иконку на чужой ехе-файл


3-1094193006
R.O.O.T
2004-09-03 10:30
2004.10.03
DBGrid - получение данных