Вниз
Скачать: 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 вся ветка

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



Память: 0.46 MB
Время: -0.976 c
11-1103676436
Solo
2004-12-22 03:47
2005.08.07
Опять про подсветку в RichEdit


14-1120682822
GanibalLector
2005-07-07 00:47
2005.08.07
Что это ?


14-1121404689
Ega23
2005-07-15 09:18
2005.08.07
С днем рождения! 15 июля


1-1121211557
Скрин
2005-07-13 03:39
2005.08.07
Как снять скриншот ?


3-1120125911
Belkova
2005-06-30 14:05
2005.08.07
onKeyPress




   Наверх