Иллюстрированный самоучитель по Delphi 7 для профессионалов

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

Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.