Компонент TDateTimePicker

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

Таблица 5.7. Основные свойства и методы компонента TDateTimePicker

Объявление

Описание

type TDTCalAlignment = (dtaLeft, dtaRight) ; property CalAlignment : TDTCalAlignment;

Выравнивает панель календаря по левой или правой стороне компонента

property Checked: Boolean;

Возвращает True, если флажок в редакторе включен

type TDTDateFormat = (df Short, dfLong) ; property DateFormat: TDTDateFormat;

Определяет формат представления даты

type TDTDateMode = (dmComboBox, dmUpDown) ; property DateMode: TDTDateMode;

Задает стиль компонента

property DroppedDown: Boolean;

Возвращает True, если панель календаря включена

type TDateTimeKind = (dtkDate, dtkTime) ; property Kind: TDateTimeKind;

Определяет возвращаемый результат — дату или время. Время можно вводить только в стиле dmUpDown

property Parselnput: Boolean;

Включает или отключает метод-обработчик OnUserlnput

property ShowCheckbox: Boolean;

Управляет видимостью флажка

type TTime = type TDateTime; property Time: TTime;

Содержит установленное время

property OnChange: TNotifyEvent;

Вызывается при вводе даты или времени

property OnCloseUp: TNotifyEvent;

Вызывается при сворачивании панели календаря

property OnDropDown: TNotifyEvent;

Вызывается при разворачивании панели календаря

type TDTParselnputEvent = procedure (Sender : TObject; const UserString: string; var DateAndTime: TDateTime; var AllowChange: Boolean) of object;

property OnUser Input: TDTParselnputEvent;

Вызывается при прямом вводе значения в редактор.

Параметр UserString содержит вводимое значение.

Параметр DateAndTime содержит значение даты или времени.

Параметр AllowChange управляет изменением значения

Компонент TDateTimePicker может обеспечивать ввод даты или времени.

Помимо календаря в элемент управления встроен флажок, который расположен в левой части редактора. Его видимостью можно управлять.

В зависимости от значения свойства Kind элемент управления настраивается на ввод даты или времени. Результат ввода даты сохраняется в свойстве Date. Дату можно выбирать из всплывающего календаря или путем перебора. Результат ввода времени сохраняется в свойстве Time.

Свойство Parseinput при значении True разрешает ручной ввод значения. В этом случае разработчик может использовать метод-обработчик

type TDTParselnputEvent = procedure(Sender: TObject; const UserString: string; var DateAndTime: TDateTime; var AllowChange: Boolean) of object; property OnUserlnput: TDTParselnputEvent;

В нем можно предусмотреть необходимые действия, например проверку введенного значения:

procedure TForml.DateTimePicker2UserInput(Sender: TObject;

 const UserString: String; var DateAndTime: TDateTime; var AllowChange: Boolean); 

begin

 try

DateAndTime := StrToDateTime(UserString);

 except

on E: EConvertError do ShowMessage('Неверное значение');

 end;

  end;

Обратите внимание, что здесь обязательно должно присутствовать присвоение результата ввода параметру DateAndTime, иначе элемент управления не получит новое значение.