Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Тема: Создание проекта с использованием компонентов ввода и отображения чисел, дат и времени




Лабораторное занятие № 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.


 




Поделиться с друзьями:


Дата добавления: 2014-12-25; Просмотров: 1422; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.007 сек.