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