Вниз
Скачать: CL | DM;

Свой "Планировщик задач"   Найти похожие ветки 

← →
Novichok_New ©   (2007-02-21 21:27) [0]

На примере кода, "выдернутого" из исходника (найденого в 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;

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


← →
Fay ©   (2007-02-21 21:31) [1]

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


← →
Novichok_New ©   (2007-02-21 21:37) [2]


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

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


← →
RASkov   (2007-02-21 21:40) [3]

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

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


← →
Novichok_New ©   (2007-02-21 21:41) [4]

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


← →
Novichok_New ©   (2007-02-21 21:44) [5]

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


← →
RASkov   (2007-02-21 21:44) [6]

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


← →
RASkov   (2007-02-21 21:45) [7]

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

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


← →
Novichok_New ©   (2007-02-21 21:50) [8]

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


← →
Virgo_Style ©   (2007-02-21 21:58) [9]

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


← →
Sam Stone ©   (2007-02-21 22:00) [10]

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


← →
Virgo_Style ©   (2007-02-21 22:01) [11]

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


← →
RASkov   (2007-02-21 22:18) [12]

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

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


← →
RASkov   (2007-02-21 22:20) [13]

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


← →
Novichok_New ©   (2007-02-22 08:13) [14]

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



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

Скачать: CL | DM;



Память: 0.48 MB
Время: 0.029 c
15-1171608555
TohaNik
2007-02-16 09:49
2007.03.18
Перепись:)


2-1172159524
Dennis Pakseew
2007-02-22 18:52
2007.03.18
Как сделать кнопку объемной?


15-1171918604
vasIZmax
2007-02-19 23:56
2007.03.18
Музыки не будет?


3-1166690839
DelphiLexx
2006-12-21 11:47
2007.03.18
Как правильно спроектировать новую таблицу


3-1166546496
KIR
2006-12-19 19:41
2007.03.18
FastReport 2.54 При печате печатает "кракозябликами"




   Наверх