Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.03.18;
Скачать: 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 вся ветка

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

Наверх




Память: 0.49 MB
Время: 0.051 c
8-1152770379
Officeman
2006-07-13 09:59
2007.03.18
gif в bmp (ищу утилиту)


6-1159773492
MZUser
2006-10-02 11:18
2007.03.18
Выполнение PHP скрипта в WebBrowser


15-1171726858
nali
2007-02-17 18:40
2007.03.18
Посоветуте прогу для чтения с порченного DVD


2-1172573397
VitaliyRilan
2007-02-27 13:49
2007.03.18
Virtual Drive


2-1172479664
Darvin
2007-02-26 11:47
2007.03.18
Ошибки при чтении данных из COM-порта