Собираем по винтикам будильник.
Вот как у меня выглядит будильник
это кнопка взвода будьльника
procedure TForm1.SpeedButton1Click(Sender: TObject);
var c:string;
begin
c:='Ты не забыл что...'; напоминалка текст
unit2.Form2.ListBox1.Items.Append(memo1.Lines.Text);
unit2.Form2.Label1.Caption:=c+' '+edit1.Text;
statusbar1.Panels[0].Text:='Alarm set on:';
statusbar1.Panels[1].Text:=edit1.Text;
statusbar1.panels[2].text:='Alarm is activate';
timer1.Enabled:=true; запускаем будильник
end;
{--- Calculate time ---}
Procedure MyTimer(Alarm:string; var curTime:string);
var sys:_systemtime;
h,m:string;
begin
GetLocalTime(sys);
h:=inttostr(sys.wHour);
if length(h)<>2 then
begin
h:='0'+h;
end;
m:=inttostr(sys.wMinute);
if length(m)<>2 then
begin
m:='0'+m;
end;
curtime:=h+':'+m;
if curTime=Alarm then begin form1.Timer1.Enabled:=false; если текущее время совпадает с "взведенным будильником" то выключаем таймер и показываем окно с напоминанием
unit2.Form2.ShowModal;
end;
end;
А здесь в обработчике таймера вызывается наш будильник и ему передается время взвода из нижней панели в переменной с будет текущее время
procedure TForm1.Timer1Timer(Sender: TObject);
var c:string;
begin
MyTimer(statusbar1.Panels[1].Text,c);
end;
Конечно еше надо разобрать как же будильник будет звенеть, будить нас или напоминать нам важное для нас событие, самый лучший вариант когда мы можем даже выбрать mp3 мелодию а не только *.wav. Опишу и музыкальную часть будильника в следующей статье.
А сейчас давайте узнаем как же мы будем узнавать время,а вот как
GetLocalTime(sys); фу-ия получения времени ей мы передаем специальную переменную
типа _systemtime зажмите Ctrl и клацните мышкой по этому типу данных, ну мышкой не стоит стукать ))) левой кнопкой мыщи :)
и вот что мы увидим перейдя к описанию данного типа данных
PSystemTime = ^TSystemTime;
_SYSTEMTIME = record
wYear: Word; год
wMonth: Word; месяц
wDayOfWeek: Word; день недели
wDay: Word; день
wHour: Word; час
wMinute: Word; минута
wSecond: Word; секунда
wMilliseconds: Word; милисекунда
end;
h:=inttostr(sys.wHour); преобразуем число (час) в строку и присваиваем перем. h
Если написать sys и добавить точку . то мгновенно срабатывает суфлер кода выскакивают возможные варианты подсказом выбираем wHour
if length(h)<>2 then если длинна часа не равна двум 00:00 то добавляем нуль т.е если было 0:00 то будет 00:00 можно это сделать вот так if (h mod 2)=0 then h:='0'+h т.е проверим четность
begin
h:='0'+h;
end;
m:=inttostr(sys.wMinute); получаем минуты
if length(m)<>2 then
begin
m:='0'+m;
end;
curtime:=h+':'+m; соберем в одну строку и часы и минуты добавив между ними :
Вот вроде бы и все, остальное опишу в следующей пояснительной статье...
Вот как у меня выглядит будильник
это кнопка взвода будьльника
procedure TForm1.SpeedButton1Click(Sender: TObject);
var c:string;
begin
c:='Ты не забыл что...'; напоминалка текст
unit2.Form2.ListBox1.Items.Append(memo1.Lines.Text);
unit2.Form2.Label1.Caption:=c+' '+edit1.Text;
statusbar1.Panels[0].Text:='Alarm set on:';
statusbar1.Panels[1].Text:=edit1.Text;
statusbar1.panels[2].text:='Alarm is activate';
timer1.Enabled:=true; запускаем будильник
end;
{--- Calculate time ---}
Procedure MyTimer(Alarm:string; var curTime:string);
var sys:_systemtime;
h,m:string;
begin
GetLocalTime(sys);
h:=inttostr(sys.wHour);
if length(h)<>2 then
begin
h:='0'+h;
end;
m:=inttostr(sys.wMinute);
if length(m)<>2 then
begin
m:='0'+m;
end;
curtime:=h+':'+m;
if curTime=Alarm then begin form1.Timer1.Enabled:=false; если текущее время совпадает с "взведенным будильником" то выключаем таймер и показываем окно с напоминанием
unit2.Form2.ShowModal;
end;
end;
А здесь в обработчике таймера вызывается наш будильник и ему передается время взвода из нижней панели в переменной с будет текущее время
procedure TForm1.Timer1Timer(Sender: TObject);
var c:string;
begin
MyTimer(statusbar1.Panels[1].Text,c);
end;
Конечно еше надо разобрать как же будильник будет звенеть, будить нас или напоминать нам важное для нас событие, самый лучший вариант когда мы можем даже выбрать mp3 мелодию а не только *.wav. Опишу и музыкальную часть будильника в следующей статье.
А сейчас давайте узнаем как же мы будем узнавать время,а вот как
GetLocalTime(sys); фу-ия получения времени ей мы передаем специальную переменную
типа _systemtime зажмите Ctrl и клацните мышкой по этому типу данных, ну мышкой не стоит стукать ))) левой кнопкой мыщи :)
и вот что мы увидим перейдя к описанию данного типа данных
PSystemTime = ^TSystemTime;
_SYSTEMTIME = record
wYear: Word; год
wMonth: Word; месяц
wDayOfWeek: Word; день недели
wDay: Word; день
wHour: Word; час
wMinute: Word; минута
wSecond: Word; секунда
wMilliseconds: Word; милисекунда
end;
h:=inttostr(sys.wHour); преобразуем число (час) в строку и присваиваем перем. h
Если написать sys и добавить точку . то мгновенно срабатывает суфлер кода выскакивают возможные варианты подсказом выбираем wHour
if length(h)<>2 then если длинна часа не равна двум 00:00 то добавляем нуль т.е если было 0:00 то будет 00:00 можно это сделать вот так if (h mod 2)=0 then h:='0'+h т.е проверим четность
begin
h:='0'+h;
end;
m:=inttostr(sys.wMinute); получаем минуты
if length(m)<>2 then
begin
m:='0'+m;
end;
curtime:=h+':'+m; соберем в одну строку и часы и минуты добавив между ними :
Вот вроде бы и все, остальное опишу в следующей пояснительной статье...
Комментариев нет:
Отправить комментарий