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

Объект Shape (Фигура)

Размещается на вкладке Additional (Дополнительная).

Вид фигуры задается свойством shape, которое может принимать следующие значения:

stCircle — круг;

stEllipse — эллипс;

stRectangle — прямоугольник;

stRoundRect — прямоугольник со скругленными углами;

s.tRoundSquare — квадрат со скругленными углами;

stSquare — квадрат.

Для задания цвета и способа заливки используется свойство Brush (Кисть).

Тема 6. Работа с датой и временем Объект Timer

В языке Delphi существует возможность выполнения через одинаковые промежутки времени операций, которые не зависят от действий пользователя во время работы приложения. Для этого используется элемент управления Timer; основная область его применения – определение промежутка времени, в течение которого выполняются определенные действия в приложении. Следует отметить, что данный элемент не отображается на форме при работе программы.

Свойства компонента Timer

Свойство

Описание

Name

Имя компонента. Используется для доступа к компоненту

Interval

Период генерации события OnTimer. Задается в миллисекундах. Событие Timer выполняется каждый раз, по истечении очередного промежутка времени, заданного свойством Interval.

Enabled

Разрешение работы. Разрешает (значение True) или запрещает (значение False) генерацию события OnTimer, то есть позволяет начать отсчет времени или запрещает.

Пример. Проект «Секундомер».

Форма содержит четыре объекта: метка, две командные кнопки «Старт», «Стоп» и объект таймер. При нажатии на кнопку «Старт» включается таймер и начинается отсчет времени. При нажатии на кнопку «Стоп» действие таймера останавливается и т.д.

Решение: на этапе разработки поместить таймер на форму, задать свойства Interval = 1000 (1 секунда), Enabled = False. На форме создать один объект «Метка» для отображения времени и два объекта «Командная кнопка», свойства Caption для объекта метка принимает значение 0 (ноль), а для объектов «Командная кнопка» - СТАРТ и СТОП соответственно.

Форма имеет вид:

Фрагмент программного кода:

var Form1: TForm1; a:integer;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);

begin

a:=0;

Label1.Caption:=inttostr(a);

timer1.Enabled:=true;

end;

procedure TForm1.Button2Click(Sender: TObject);

begin

timer1.Enabled:=false;

end;

procedure TForm1.Timer1Timer(Sender: TObject);

begin

a:=a+1;

Label1.Caption:=inttostr(a);

end;

Манипулирование датами и временем

Большинству функций манипулирования датами в качестве параметра передается переменная типа TDateTime, в качестве которой, как правило, используется значение функции now.

Now

Системная дата и время – переменная типа TDateTime

DateToStr(dt)

Строка символов, изображающая дату в формате dd.mm.yy

TimeToStr(dt)

Строка символов, изображающая время в формате hh:mm:ss

StrToDate (S)

преобразование строки S в дату;

StrToTime (S)

преобразование строки S во время;

DayOf(dt)

День (номер дня в месяце), соответствующий дате, указанной в качестве параметра функции

MonthOf(dt)

Номер месяца, соответствующий дате, указанной в качестве параметра функции

WeekOf(dt)

Номер недели, соответствующий дате, указанной в качестве параметра функции

YearOf(dt)

Год, соответствующий указанной дате

DayOfWeek(dt)

Номер дня недели, соответствующий указанной дате: 1 – воскресенье, 2 – понедельник, 3 – вторник и т.д.

StartOfWeek(w)

Дата первого дня указанной недели

HourOf(dt)

Количество часов

MinuteOf(dt)

Количество минут

SecondOf(dt)

Количество секунд

DecodeDate(dt, y, m, d)

Возвращает год, месяц и день, представленные отдельными числами

DecodeTime(dt, h, m, s, ms)

Возвращает время (часы, минуты, секунды и миллисекунды), представленное отдельными числами

FormatDateTime(s, dt)

Строка символов, представляющая собой дату или время. Способ представления задает строка формата s, например, строка dd/mm/yyyy задает, что значением функции является дата, а строка hh:mm – время

Пример. Электронные часы

Написать программу, на поверхности формы которой отображаются текущие время и дата.

var

Form1: TForm1; y,m,d,h,min,s,ms:word;

implementation

{$R *.dfm}

procedure TForm1.Timer1Timer(Sender: TObject);

begin

Label1.Caption:=FormatDateTime('hh:mm:ss',now());

Label2.Caption:=FormatDateTime('dd.mm.yy',now());

DecodeDate(now(),y,m,d);

Label3.caption:='год '+intToStr(y);

Label4.caption:='месяц '+intToStr(m);

Label5.caption:='день '+intToStr(d);

DecodeTime(now(),h,min,s,ms);

Label6.caption:='часы '+intToStr(h);

Label7.caption:='минуты '+intToStr(min);

Label8.caption:='секунды '+intToStr(s);

Label9.caption:='миллисекунды '+intToStr(ms);

end;

Задание 2. Секундомер.

При щелчке на кнопке Старт в первом текстовом поле отображается текущее время в момент нажатия кнопки. При нажатии на кнопке Стоп выводится текущее время в момент щелчка на кнопке. При щелчке на кнопке Время в третьем окне показывается, сколько времени прошло между щелчками на кнопках Старт и Стоп.

Var Form1: TForm1; t1,t2,t:TDateTime;

Implementation {$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);

begin

t1:=now(); Edit1.Text:=TimeToStr(t1);

end;

procedure TForm1.Button2Click(Sender: TObject);

begin

t2:=now(); Edit2.Text:=TimeToStr(t2);

end;

procedure TForm1.Button3Click(Sender: TObject);

begin

t:=t2-t1; Edit3.Text:=TimeToStr(t);

end;

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]