Обработка календарных дат и времени в приложениях. Изучение и применение встроенных функций и процедур и компонентов Delphi для ввода, отображения и вычисления времени и даты

Страницы работы

Фрагмент текста работы

ЛАБОРАТОРНАЯ РАБОТА ПММ-Delphi-05

ОБРАБОТКА КАЛЕНДАРНЫХ ДАТ И ВРЕМЕНИ В ПРИЛОЖЕНИЯХ

Цель работы: изучение и применение встроенных функций и процедур и компонентов Delphi для ввода, отображения и вычисления времени и даты

1. Компоненты ввода даты и времени

В Delphi имеются компоненты, позволяющие вводить, отображать и редактировать числа, даты и время. Их применение более удобно, чем использование компонентов Label и Edit. 

Пикто- грамма

Компонент

Страница

Описание 

 

DateTimePicker

(окно ввода дат и времени)

Win32

Ввод даты (с выпадающим календарем выбранного месяца) или ввод времени.

Основные свойства — Date и Time

 

MonthCalendar

(окно ввода дат)

Win32

Ввод дат с выбором из календаря выбранного месяца. Аналогичен

DateTimePicker, но календарь полностью виден на форме

 

Calendar

(календарь          на

указанный месяц)

Samples

Отображение календаря на указанный месяц.  Основные свойства — Month и Day

Из этих компонентов наиболее удобным является DateTimePicker. Этот компонент может использоваться и для ввода даты (свойство Kind имеет значение dtkDate) и для ввода времени (свойство Kind имеет значение dtkTime). На форме компонент занимает немного места, так как реализует режим появления выпадающего календаря. Это обеспечивает также безошибочный с точки зрения синтаксиса ввод дат и времени. 

При вводе дат можно задать свойство DateMode равным dmComboBox — наличие выпадающего календаря, или равным dmUpDown — наличие кнопок увеличения и уменьшения. В последнем случае пользователь может независимо устанавливать с помощью кнопок число, месяц и год. Формат представления дат определяется свойством DateFormat, которое может принимать значения dfShort — краткий формат (например, 01.12.2008), или dfLong — полный формат (например, 1 декабря 2008 г.). 

Свойство DateTimePicker.Date можно использовать в программе, причем для преобразования значения свойства в строку можно воспользоваться функцией DateToStr.

Можно задать значения свойств MaxDate и MinDate, определяющих соответственно максимальную и минимальную дату, которую может выбрать пользователь. 

В режиме ввода времени dtkTime введенное пользователем значение можно найти в свойстве DateTimePicker.Time, тип которого — тот же рассмотренный выше TDateTime. Преобразовать время в строку можно функцией TimeToStr

Упражнение 1. Выбор дня текущего месяца с помощью компонента

DateTimePicker. 

Дополните проект компонентами DateTimePicker1 и Label3

Свойство Label3.Caption задайте как «Выбрана дата: »

Компонент Label3 будем использовать для отображения даты, выбранной при работе программы с помощью компонента DateTimePicker1. Факту выбора даты соответствует событие OnChange этого компонента. Перейдите к процедуре, обрабатывающей это событие и наберите команду

Procedure TForm1.DateTimePicker1Change(Sender: TObject); begin

 Label3.Caption:=

   'Выбрана дата: '+DateToStr(DateTimePicker1.Date); end;

Проверьте работу программы.

Выберите в инспекторе объектов другие значения свойств DateFormat и DateMode. Как они влияют на вид даты в окне компонента и его работу при запуске программы?

Упражнение 2. Ввод произвольной даты с помощью DateTimePicker и отображение с помощью календаря.

Дополните проект компонентом Calendar (палитра Samples). Выровняйте границы компонента на форме. Календарь показывает дни определенного месяца, если не дополнительных указаний, то это – текущий месяц.

Свойства календаря Day, Month, Year позволяют настроить его содержимое на нужную дату. Для проверки работы этого компонента добавьте в обработчик компонента DateTimePicker1 команды, которые изменяют параметры календаря в соответствии с выбранной датой. При этом отдельно устанавливаются численные значения года, месяца и дня. Для получения этих значений используется процедура DecodeDate. Удобно получаемую от DateTimePicker1 дату сохранить в отдельной переменной типа tDateTime, а значения года, месяца и дня сохранить в переменных целого типа. Тогда процедура – обработчик примет вид

Procedure TForm1.DateTimePicker1Change(Sender: TObject); var

 Dt:tDateTime;  Y,M,D: Word; begin

 Dt:=DateTimePicker1.Date;

 Label4.Caption:='Выбрана дата: '+DateToStr(Dt);

 DecodeDate(Dt,Y,M,D);

 Calendar1.Year:=Y;

 Calendar1.Month:=M;  Calendar1.Day:=D; end;

2. Ввод текстовой и числовой информации. Компонент ComboBox

Компонент ComboBox позволяет выбрать нужный элемент (строку или число) из списка доступных элементов. Список отображается как в развернутом виде, так и в виде выпадающего

Похожие материалы

Информация о работе