Электронные часы
Цель работы - написать программу «Электронные часы», в окне которой отображается текущее время, дата и день недели.
Описание плана разработки программы
1. Открыть новый проект.
2. Разместить на форме экземпляры компонентов: Label, Timer.
3. Выполнить следующие действия:
Ввести константы, отвечающие за названия дней недели и месяцев.
Объявить процедуру ShowTime вручную для доступа к компонентам формы напрямую.
Процедура ShowTime отображает текущее время.
Процедура FormTime обрабатывает событие Paint.
Процедура Timer1Timer обрабатывает сигнал таймера.
Процедура FormCreate обрабатывает событие OnCreate.
Листинг программы:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls;
type
TForm1 = class(TForm)
Timer1: TTimer;
Label1: TLabel; // время
Label2: TLabel; // дата и день недели
procedure Timer1Timer(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure FormPaint(Sender: TObject);
procedure ShowTime;
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
const
stDay : array[1..7] of string[11] =
('воскресенье','понедельник','вторник',
'среда','четверг','пятница','суббота');
stMonth : array[1..12] of string[8] =
('января','февраля','марта',
'апреля','мая','июня','июля',
'августа','сентября','октября',
'ноября','декабря');
{$R *.dfm}
procedure TForm1.ShowTime;
var Time : TDateTime; // текущее время
begin
Time := Now(); // получить системное время
Label1.Caption := FormatDateTime('hh:mm:ss',Time);
end;
procedure TForm1.Timer1Timer(Sender: TObject);
begin
ShowTime; // отобразить время
end;
procedure TForm1.FormCreate(Sender: TObject);
var
Present: TDateTime; // текущая дата и время
Year, Month, Day : Word; // год, месяц и число, как
// отдельные числа
begin
Present:= Now; // получить текущую дату
DecodeDate(Present, Year, Month, Day);
Label2.Caption := 'Сегодня '+IntToStr(Day)+ ' ' +
stMonth[Month] + ' '+ IntToStr(Year)+
' года, '+ stDay[DayOfWeek(Present)];
// настроить и запустить таймер
Timer1.Interval := 1000; // период сигналов таймера 1 с
Timer1.Enabled := True; // пуск таймера
end;
procedure TForm1.FormPaint(Sender: TObject);
begin
ShowTime; // отобразить часы
end;
end.