ЛАБОРАТОРНАЯ РАБОТА ПММ-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 позволяет выбрать нужный элемент (строку или число) из списка доступных элементов. Список отображается как в развернутом виде, так и в виде выпадающего
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.