M Y D E L P H I 7 . R U Самоучитель программирования  
 
  • Главная
  •  

     

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