- •Введение
 - •Лабораторное занятие № 1 Тема: Разработка программ со структурированными типами данных
 - •Лабораторное занятие № 2 Тема: Создание программ, выполняющих основные операции работы со списком
 - •Лабораторное занятие № 3 Тема: Структура окна Delphi. Исследование функциональных возможностей среды Delphi
 - •Лбораторное занятие № 4 Тема: Изучение основных компонентов среды Delphi
 - •Лабораторное занятие № 5 Тема: Управление настройками среды разработки
 - •Лабораторное занятие № 6 Тема: Создание проекта линейной структуры программы с использованием визуальных компонентов
 - •Лабораторное занятие № 7 Тема: Создание проекта разветвляющейся структуры программы с использованием визуальных компонентов
 - •Лабораторное занятие № 8 Тема: Создание проекта циклических структуры программы с использованием визуальных компонентов
 - •Лабораторное занятие № 9 Тема: Создание проекта с использованием кнопочных компонентов
 - •Лабораторное занятие № 10 Тема: Создание проекта с использованием однострочного редактора
 - •Лабораторное занятие № 11 Тема: Создание проекта с использованием компонентов ввода и отображения чисел, дат и времени
 - •Лабораторное занятие № 12 Тема: Создание проекта с использованием компонентов стандартных диалогов
 - •Лабораторное занятие № 13 Тема: Создание проекта по обработке одномерных массивов
 - •Лабораторное занятие № 14 Тема: Создание проекта по обработке двумерных массивов
 - •Лабораторное занятие № 15 Тема: Создание программы с использованием компонента RadioButton и GroupBox
 - •Заключение
 - •Список используемых источников
 
Лабораторное занятие № 11 Тема: Создание проекта с использованием компонентов ввода и отображения чисел, дат и времени
Цель: приобретение компетенции программирования методов типа TDateTime в системе Delphi.
ТО и ПО: ОС Windows 7, Delphi 2010.
МО: методические указания.
Задание: Требуется разработать проект, демонстрирующий работу компонента Timer.
Описание хода выполнения работы:
1 этап: Размещение компонентов приложения. Настройка основных свойств.
Запустила систему программирования Delphi 2010.
Создайте Delphi – проект.
Со страницы Standart палитры компонентов поместила на форму один компонент: TLabel1.
Со страницы Additional палитры компонентов поместила на форму один компонент: TStaticText. Компонент StaticText.
Со страницы Additional палитры компонентов поместила на форму три компонента: TBitBtn1 , TBitBtn2, TBitBtn.
Со страницы System палитры компонентов поместите на форму компонент TTimer.
Настроила свойство Kind для первой кнопки. Для этого в свойстве Kind, которое определяет тип кнопки, выбрала значение bkОк. Изменила надпись, написав в свойстве Caption новое значение Старт.
8. Настроила свойство Kind для второй кнопки. Для этого в свойстве Kind выбрала значение bkNo. Изменила надпись, написав в свойстве Caption новое значение Стоп.
Настроила свойство Kind для третьей кнопки. Для этого в свойстве Kind выбрала значение bkAbort. Изменила надпись, написав в свойстве Caption новое значение Сброс.
Выполнила выравнивание положения кнопок на форме. Сначала выделила их в группу. Для этого, удерживая клавишу Shift, щелкнула мышкой по каждой кнопке, начиная с первой по порядку. Затем в главном меню Delphi выполнила команду Edit - Align… – выравнивание размещения. В открывшемся окне Alignment, в его левой части Horizontal (выравнивание компонентов по горизонтали), выбрала вариант Spaceequally – разместила с равными интервалами между компонентами. А в правой части окна – Vertical (выравнивание компонентов по вертикали) выбрала вариант Tops – выровнять компоненты по их верхним сторонам. Нажала кнопку OK, чтобы выполнить выравнивание компонентов. После этого, не снимая выделения с группы и удерживая клавишу Ctrl, с помощью клавиш со стрелочками переместила всю группу кнопок в нижнюю часть формы.
Для компонента StaticText изменила значение свойства Caption на 0. Изменила размер шрифта надписи. Для этого в свойстве Font в подсвойстве Size написала значение 12.Задала стиль бордюра, выбрав у свойства BorderStyle значение sbsSunken.
Настроила свойства таймера. Если таймер включен (свойство Enabled:=true), то периодически, через интервал времени, заданный в миллисекундах в свойстве Interval(по умолчанию значение равно 1000 mc=1 с), таймер срабатывает, вызывая событие OnTimer. Чтобы после запуска программы до нажатия соответствующей кнопки таймер был выключен, установила у его свойства Enabledзначение false.
2 этап: Программирование обработчиков событий
У кнопки BitBtn1 («Старт») в обработчике события OnClick записала:
Timer1.Enabled:=true;
При нажатии на эту кнопку таймер включается.
У кнопки BitBtn2 («Стоп») в обработчике события OnClick записала:
Timer1.Enabled:=false;
При нажатии на эту кнопку таймер выключается.
У компонента Timer1 создала событие OnTimer. В обработчик этого события записала:
Timer1.Tag:=Timer1.Tag+1;
StaticText1.Caption:=IntToStr(Timer1.Tag);
В данном приложении в значении свойстваTag я сохранила количество срабатываний таймера, что записано в первой строке этого обработчика события.
У кнопки BitBtn3 («Сброс») создала событие OnClick. В обработчик этого события записала:
Timer1.Enabled:=false;
Timer1.Tag:=0;
StaticText1.Caption:='0';
3 этап: Модернизация приложения
Разместила два компонента TLabel. Задала для первого надпись: Текущее время. Надпись для второго оставила без изменения.
В разделе реализации (implementation) объявила процедуру:
procedure TForm1.ShowTime;
begin Time:= now();
label1.Caption:=FormatDateTime('hh:mm:ss', Time); end;
Вручную в разделеTypeдобавилапроцедуру: procedureShowTime;
В обработчик OnTimer компонента Timer1 добавила вызов процедуры: ShowTime;
Размеcтила на форме компонент Label5.
Создалаобработчиксобытия:
procedure TForm1.FormCreate(Sender: TObject);
var
present: TDateTime;
year, month, day: WORD;
begin present:=now;
DecodeDate(present, year, month, day);
label5.Caption:='Сегодня '+ ' '+inttostr(day)+' '+inttostr(month)+' '+inttostr(year)+' ' +' деньнедели '+inttostr(DayOfWeek(present)); end;
Модернизировала программу, выводя названия месяца и дня недели.
Для этого объявила строковую константу в разделе реализации перед директивой препроцессора
const
tday:array[1..7] ofstring[20]= ('воскресение', 'понедельник', 'вторник', 'среда', 'четверг', 'пятница', 'суббота');
в procedure TForm1.FormCreate(Sender: TObject) замениластроку:
label5.Caption:='Сегодня '+ ' '+inttostr(day)+' '+inttostr(month)+' '+inttostr(year)+' ' +' деньнедели'+tday[DayOfWeek(present)]; end;
Проверила разработанное приложение на работоспособность. Это продемонстрировано на рисунке 11.1.
Рисунок 11.1
Полный код разработанного приложения:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls, StdCtrls, Buttons;
type
TForm1 = class(TForm)
Label1: TLabel;
StaticText1: TStaticText;
BitBtn1: TBitBtn;
BitBtn2: TBitBtn;
BitBtn3: TBitBtn;
Timer1: TTimer;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
procedure BitBtn1Click(Sender: TObject);
procedure BitBtn2Click(Sender: TObject);
procedure Timer1Timer(Sender: TObject);
procedure BitBtn3Click(Sender: TObject);
procedure Showtime;
procedureFormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;Time:tdatetime;
implementation
{$R *.dfm}
procedure TForm1.BitBtn1Click(Sender: TObject);
begin Timer1.Enabled:=True; end;
procedure TForm1.BitBtn2Click(Sender: TObject);
begin Timer1.Enabled:=false; end;
procedure TForm1.BitBtn3Click(Sender: TObject);
begin
Timer1.Enabled:=false;
Timer1.tag:=0;
StaticText1.Caption:='0'; end;
procedure TForm1.FormCreate(Sender: TObject);
var present: TDateTime;
year,month,day: Word;
begin
DecodeDate(present,year,month,day);
label3.Caption:='Сегодня '+ ' '+inttostr(day)+' '+inttostr(month)+' '
+inttostr(year)+' '+' деньнедели'+inttostr(DayofWeek(present)); end;
procedure TForm1.Timer1Timer(Sender: TObject);
begin
ShowTime;
Timer1.Tag:=Timer1.Tag+1;
Statictext1.Caption:=inttostr(Timer1.tag); end;
procedure TForm1.Showtime;
begin
Time:=now();
label2.Caption:=formatdatetime('hh:mm:ss',Time);
end; end.
Вывод: В ходе лабораторного занятия был разработан проект, демонстрирующий работу компонента Timer. При создании проекта с использованием компонента ввода и отображения чисел, дат и времени приобрела компетенции программирования методов типа TDateTime в системе Delphi.
