|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
03.10.2011, 01:52 | #11 |
нажмите + на весах
Пользователь
Регистрация: 10.11.2010
Сообщений: 30
|
ясно. спасибо всем
Если помог нажми на весы
|
04.03.2015, 16:45 | #12 |
Новичок
Джуниор
Регистрация: 04.11.2014
Сообщений: 2
|
Как сделать так чтобы поток мог запускаться много раз.
Как бы все правы. И я придумал, как выйти из указанного положения.
Надо было создать таймер. Свой собственный, для применения не в потоке, а в своих компонентах. Добавил поле Stopped. Которое останавливало таймер без применения процедуры таймера. Естественно я не занимался не нужными мне вещами. Если метод Stop запустить ДО метода Go, то метод Go сразу вызовет процедуру таймера. Но у меня так и планировалось . interface type TOunTimer = class(TThread) Private T : TDateTime; FOnTimer : TNotifyEvent; FInterval : Integer; Stopped : Boolean; Public Constructor Create(OnTimer : TNotifyEvent); Destructor Destroy; override; Procedure Execute; Override; Procedure Go; Procedure Stop; Property Interval : Integer read FInterval Write FInterval; end; implementation constructor TOunTimer.Create(OnTimer : TNotifyEvent); begin inherited Create(true); Stopped := False; FOnTimer := OnTimer; end; destructor TOunTimer.Destroy; begin inherited; end; procedure TOunTimer.Execute; begin While Not(Terminated) Do Begin While (Now < T + Interval / 24 / 3600000) And Not(Self.Stopped) Do Sleep(1); If Not(Stopped) Then Begin If Assigned(Self.FOnTimer) Then FOnTimer(nil); End; Stopped := False; Self.Suspend; End; end; procedure TOunTimer.Go; begin T := Now; Self.Resume; //Start; end; procedure TOunTimer.Stop; begin Stopped := True; end; end. |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Как запустить приложение несколько раз? | Trip | Помощь студентам | 2 | 04.09.2011 18:28 |
Как запустить одно приложение много раз ? | Jugger | Операционные системы общие вопросы | 2 | 08.03.2011 22:07 |
Как запустить форму только один раз | artemavd | Общие вопросы Delphi | 9 | 28.11.2010 16:43 |
КАК в DELPHI сделать второй поток ( чтобы pop3 с прогой не вис) | M@g soft | Помощь студентам | 0 | 11.05.2009 18:12 |
Как остановить поток а потом снова запустить? | Des | Общие вопросы Delphi | 5 | 03.05.2009 12:35 |