Практикум по Delphi для решения прикладных задач


         

Электронные часы


Цель работы - написать программу «Электронные часы», в окне которой отображается текущее время, дата и день недели.




Описание плана разработки программы

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.




Содержание раздела