Компонент 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, иначе элемент управления не получит новое значение.