Текущий архив: 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