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

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

Свой "Планировщик задач" [D7]


Novichok_New ©   (2007-02-21 21:27:00) 

На примере кода, "выдернутого" из исходника (найденого в Nete), хотел обсудить вопрос создания своего "планировщика задач":
procedure TForm1.Button1Click(Sender: TObject);
begin
Timer3.Enabled:=True;
end;

procedure TForm1.Timer1Timer(Sender: TObject);
begin
StatusBar1.Panels[1].Text:=TimeTostr(Time);
end;

procedure TForm1.Timer3Timer(Sender: TObject);
var
 Reg: TRegIniFile;    Dir,S:string;
begin
if Edit1.Text=StatusBar1.Panels[1].Text
then begin
//выполняем действие
end;
end;

Даже новичку понятно, что это решение неудачное!
Что Вы можете посоветовать взамен этого?


Novichok_New   (2007-02-22 08:13:00) [1]

Благодарю всех за идеи!


RASkov   (2007-02-21 22:20:00) [2]

:)
Т.е. в [11]
Самому смешно от того, что предложил...


RASkov   (2007-02-21 22:18:00) [3]

> [8] Novichok_New ©   (21.02.07 21:50)

Все тоже самое, только ближе ко времени сробатывания более чаще проверять, примерный алгоритм в [9]


Virgo_Style   (2007-02-21 22:01:00) [4]

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


Sam Stone   (2007-02-21 22:00:00) [5]

DecMinute(Время_Запуска)< Now < IncMinute(Время_Запуска)


Virgo_Style   (2007-02-21 21:58:00) [6]

Novichok_New ©   (21.02.07 21:41) [4]
да и само решение похоже на почесать левое ухо правой рукой из-под мышки


Novichok_New   (2007-02-21 21:50:00) [7]

Хе!
А если:
Задано - 23.59.59?
:-)
Шутки - шутками, а решение (в принципе) неплохое...


RASkov   (2007-02-21 21:45:00) [8]

> [5] Novichok_New ©   (21.02.07 21:44)

if Time>=StrToTime(Edit1.Text) then....


Novichok_New   (2007-02-21 21:44:00) [9]

Поймать момент, когда
12.10.00 = 12.10.00
- вот главная задача!
Пока у меня идея только реализовать:
12.09.00 < Now < 12.11.00


RASkov   (2007-02-21 21:44:00) [10]

Сработает.... хотя зависит от программы. Как будешь ловить момент срабатывания, если как в[3] то да, может и пропустить...


Novichok_New   (2007-02-21 21:41:00) [11]

Как мне объяснили - в случае большой загруженности процессора в момент, когда программа должна сработать, возможно она не сработает вообще!


RASkov   (2007-02-21 21:40:00) [12]

> [2] Novichok_New ©   (21.02.07 21:37)

if Time=StrToTime(Edit1.Text) then....
Если полностью расписывать, это надолго.... ты начни и если, что не получится спрашивай...
>Что Вы можете посоветовать взамен этого?
Вариантов много...


Novichok_New   (2007-02-21 21:37:00) [13]


> Решение чего ?

Решение запуска определённой задачи по расписанию (в определённое время)!


Fay   (2007-02-21 21:31:00) [14]

2 Novichok_New ©   (21.02.07 21:27)
> Даже новичку понятно, что это решение неудачное!
Решение чего ?


Наверх

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