Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Примеры и задачи.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
3.66 Mб
Скачать

Interface uses

Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, saper_l;

type

TAboutForm = class(TForm) Buttonl: TButton; Label1: TLabel; Label2: TLabel;

procedure ButtonlClick(Sender: TObject); private

/ Private declarations } public

{ Public declarations } end;

var

AboutForm: TAboutForm;

Implementation

($R *.DFM}

procedure TAboutForm.ButtonlClick(Sender: TObject); begin

ModalResult := mrOk; end;

end.

60. Напишите программу "Будильник". Форма программы при­ведена на рис. 1.66. После того как пользователь установит вре­мя сигнала, задаст текст напоминания и щелкнет на кнопке ОК, окно программы должно исчезнуть с экрана. В установленное время на экране должно появиться окно с напоминанием. По­явление окна должно сопровождаться звуковым сигналом.

г Сейчас -4 ■ г Сигнал ■.

00:00 '; : 00 : СЮ ~]~]

Сообщение

ок I: ф|:::::::::::

Р ис. 1.66. Форма программы Будильник

/ Будильник. Модуль главной формы. ) unit Alarm2_l_;

interface

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls, ComCtrls, DateUtils;

type

TForml = class(TForm) Timerl: TTimer; Label1: TLabel; Label2: TLabel; Label3: TLabel; Label4: TLabel; UpDownl: TUpDown; Label5: TLabel; UpDown2: TUpDown; Shape1: TShape; Label7: TLabel; Buttonl: TButton; Shape2: TShape; Label8: TLabel; Editl: TEdit; Label6: TLabel; Label9: TLabel;

procedure FormCreate(Sender: TObject); procedure TimerlTimer(Sender: TObject);

189

188

procedure UpDownlClick(Sender: TObject;

Button: TUDBtnType);

procedure UpDown2Click(Sender: TObject;

Button: TUDBtnType);

procedure ButtonlClick(Sender: TObject);

private

/ Private declarations j public

( Public declarations I end;

var

Forml: TForml;

implementation uses Alarm2_2_; {$R *.dfm}

var

Hour,Min: word; // время на индикаторе

AlHour, AlMin: word; // будильник установлен на AlHour.

// начало работы программы

procedure TForml.FormCreate(Sender: TObject);

begin

Hour := HourOf(Now);

Min := MinuteOf(Now);

Labell.Caption := IntToStr(Hour);

if Min < 10

then Label2.Caption := 'O'+IntToStr(Min) else Label2.Caption := IntToStr(Min); end;

// сигнал от таймера

procedure TForml.TimerITimer(Sender: TObject);

var

cHour,cMin: word; gin

// получить текущее время

cHour := HourOf(Now);

cMin := MinuteOf(Now);

AlMin

и задачи

if Timerl.Tag = 0 // окно программы на экране then begin

! проверим, совпадает ли текущее время

с отображаемым на индикаторе } if cHour <> Hour then begin

Hour := cHour;

Labell.Caption := IntToStr(Hour) ; end;

if cMin <> Min then begin

:= '0' + IntToStr(Min) := IntToStr(Min);

Min := cMin; if min <10

then Label2.Caption else Label2.Caption end;

// обеспечим мигание двоеточия if Label3.Visible

then Label3.Visible := False else Iabel3.Visible := True; end

else // окно программы скрыто, контролируем // наступление момента подачи сигнала if (cHour = AlHour) and (cMin = AlMin)

// сигнал ! then begin

Form2.Show; Timerl.Tag := 0; Timerl.Interval := 1000; end; end;

// щелчок на UpDownl изменяет

// время сигнала будильника — часы

Procedure TForml.UpDownlClick(Sender: TObject; Button: TUDBtnType)

begin

if UpDownl.Position < 10

then Label4.Caption := '0' +

IntToStr(UpDownl.Position)

190

end;

else Label4.Caption := IntToStr(OpDownl.Position);

private declarations j

// щелчок на UpDown2 изменяет

// время сигнала будильника — минуты

procedure TForml.UpDown2Click(Sender: TObject;

Button: TUDBtnType); begin

if UpDown2.Position < 10

then Label5.Caption := '0' +

IntToStr(UpDown2.Position)

else Label5.Caption := IntToStr(UpDown2.Position); end;

// щелчок на кнопке OK

procedure TForml.ButtonlClick(Sender: TObject); begin

// установить будильник AlHour := UpDownl.Position; AlMin := UpDown2.Position; Timerl.Tag := 1; Forml.Hide; //

Timerl.Interval := 3000; // проверять каждые З секунды end;

end.

{ Будильник. Модуль окна сообщения. } unit Alarm2_2_;