procedure
TForm1
.
BtnNewClockClick(Sender: TObject);
var
Alarm : TClock;
begin
FormNewClock := TFormNewClock
.
Create(self);
FormNewClock
.
ReserveVolume := FormNewClock
.
GetVolume;
try
if
FormNewClock
.
ShowModal = mrOK
then
begin
Alarm := TClock
.
Create;
FormNewClock
.
SetData(Alarm);
if
(Alarm
.
FMode = ONE_ALARM)
then
begin
with
ListViewAlarm
.
Items
.
Add
do
begin
Caption := Alarm
.
FTextMessage;
SubItems
.
Add(DateToStr(FormNewClock
.
DatePicker
.
Date));
SubItems
.
Add(TimeToStr(FormNewClock
.
TimePicker
.
Time));
SubItems
.
Add(Alarm
.
FPeriodAlarm);
Checked :=
True
;
end
;
end
;
if
(Alarm
.
FMode = EVERY_DAY)
then
begin
with
ListViewAlarm
.
Items
.
Add
do
begin
Caption := Alarm
.
FTextMessage;
DecodeTime(FormNewClock
.
TimePicker
.
Time, Alarm
.
FHour, Alarm
.
FMin, Alarm
.
FSec, Alarm
.
FMilSec);
if
(Alarm
.
FHour >= HourOf(Now))
and
(Alarm
.
FMin > MinuteOf(Now))
then
SubItems
.
Add(
'сегодня '
)
else
SubItems
.
Add(
'завтра '
);
SubItems
.
Add(TimeToStr(FormNewClock
.
TimePicker
.
Time));
SubItems
.
Add(Alarm
.
FPeriodAlarm);
SubItems
.
AddObject(
'Будильник'
, Alarm);
Checked :=
True
;
end
;
end
;
if
(Alarm
.
FMode = EVERY_WEEK)
then
begin
with
ListViewAlarm
.
Items
.
Add
do
begin
Caption := Alarm
.
FTextMessage;
SubItems
.
Add(IntDayWeekToStr(Alarm
.
FDayOfWeek));
SubItems
.
Add(TimeToStr(FormNewClock
.
TimePicker
.
Time));
SubItems
.
Add(Alarm
.
FPeriodAlarm);
SubItems
.
AddObject(
'Будильник'
, Alarm);
Checked :=
True
;
end
;
end
;
if
(Alarm
.
FMode = EVERY_HOUR)
then
begin
with
ListViewAlarm
.
Items
.
Add
do
begin
Caption := Alarm
.
FTextMessage;
DecodeTime(FormNewClock
.
TimePicker
.
Time, Alarm
.
FHour, Alarm
.
FMin, Alarm
.
FSec, Alarm
.
FMilSec);
SubItems
.
Add(
'ежедневно '
);
SubItems
.
Add(IntToStr(Alarm
.
FMin)+
' мин'
);
SubItems
.
Add(Alarm
.
FPeriodAlarm);
SubItems
.
AddObject(
'Будильник'
, Alarm);
Checked :=
True
;
end
;
end
;
if
(Alarm
.
FMode = EVERY_MONTH)
then
begin
with
ListViewAlarm
.
Items
.
Add
do
begin
Caption := Alarm
.
FTextMessage;
SubItems
.
Add((FormNewClock
.
EditEveryYear
.
Text)+
'-го числа'
);
SubItems
.
Add(TimeToStr(FormNewClock
.
TimePicker
.
Time));
SubItems
.
Add(Alarm
.
FPeriodAlarm);
SubItems
.
AddObject(
'Будильник'
, Alarm);
Checked :=
True
;
end
;
end
;
if
(Alarm
.
FMode = EVERY_YEAR)
then
begin
with
ListViewAlarm
.
Items
.
Add
do
begin
Caption := Alarm
.
FTextMessage;
SubItems
.
Add((FormNewClock
.
EditEveryYear
.
Text)+
'-го '
+IntMonthToStr(Alarm
.
FMonth));
SubItems
.
Add(TimeToStr(FormNewClock
.
TimePicker
.
Time));
SubItems
.
Add(Alarm
.
FPeriodAlarm);
SubItems
.
AddObject(
'Будильник'
, Alarm);
Checked :=
True
;
end
;
end
;
end
;
finally
FormNewClock
.
Free;
waveOutSetVolume(WAVE_MAPPER, FormNewClock
.
ReserveVolume);
end
;
end
;