Текущий архив: 2005.08.07;
Скачать: CL | DM;
Вниз
Будильник Найти похожие ветки
← →
Quattro © (2005-07-20 01:59) [0]Ещё раз добрый день!....вот ещё вопрос возник...в МаскЭдит ставишь некое время...как только это время наступило происходят некие действия....на форме Таймер, МаскЭдит, и кнопка...почему то некие действия не хотят происходить=)...теряюсь в догадках.=)..прошу вашей консультации..вот то что я написал...
var
s:TDateTime;
procedure TForm1.Timer1Timer(Sender: TObject);
var
SysTime:TDateTime;
begin
Label1.Caption:="Текущее время : "+ TimeToStr(Now);
SysTime:=Time;
if s = SysTime then
begin
Label2.Caption:="Иц воркинг!";
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
s:=StrToTime(MaskEdit1.Text);
end;
← →
alex-drob (2005-07-20 02:02) [1]Попробуй так:
if timetostr(s)= timetostr(SysTime) then
Должно получится.
← →
Quattro © (2005-07-20 02:24) [2]2alex-drob о чудо!!заработало....а не мог бы кратенько расказать..почему в первоначальном ваинте не работало??
← →
Джо © (2005-07-20 02:26) [3]А нафига с текстом сравнивать?...
Бросаешь на форму:
Button1,
DateTimePicker1,
Timer1.
procedure TForm1.FormCreate(Sender: TObject);
begin
Timer1.Enabled := False;
DateTimePicker1.Kind := dtkTime;
DateTimePicker1.DateTime := Now;
Button1.Caption := "Start"
end;
...
procedure TForm1.Button1Click(Sender: TObject);
begin
// запускаем/останавливаем таймер
Timer1.Enabled := not Timer1.Enabled;
// надпись на кнопке в зависимости от состояния
if Timer1.Enabled then
Button1.Caption := "Stop"
else
Button1.Caption := "Start";
end;
...
procedure TForm1.Timer1Timer(Sender: TObject);
begin
if Now>=DateTimePicker1.DateTime then
begin
Timer1.Enabled := False; // выключим во избежание двойного срабатывания
ShowMessage ("Alarm!");
end;
end;
← →
Defunct © (2005-07-20 02:27) [4]> Quattro © (20.07.05 01:59)
и никогда не получится.
Минимальный квант системного времени равен 10ms (см Рихтера), в системе туева куча потоков, которые работают разделяю процессорное время на равне с вашим потоком, поэтому нет никакой гарантии, что в заданное вами время, будет выполняться именно ваш поток. Следовательно, будильник должен проверять время на БОЛЬШЕ РАВНО, а НЕ НА РАВЕНСТВОif SysTime >= S then
Label2.Caption:="thinking"s good";
← →
Quattro © (2005-07-20 02:42) [5]Господа!!Большое вам спасибо!!=))
Страницы: 1 вся ветка
Текущий архив: 2005.08.07;
Скачать: CL | DM;
Память: 0.45 MB
Время: 0.036 c