Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 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.48 MB
Время: 0.035 c
1-1121407222
Helen
2005-07-15 10:00
2005.08.07
Потоки TTread


3-1120204988
greySerg
2005-07-01 12:03
2005.08.07
Почему ADOTable не чистит за собой память ?


1-1121863664
stud
2005-07-20 16:47
2005.08.07
отслеживание изменения каталога


8-1112567795
кактусбел
2005-04-04 02:36
2005.08.07
Как получить текущий уровень громкости


5-1092071478
Константин Рязанкин
2004-08-09 21:11
2005.08.07
Требуется помощь в изменении компонента.