Delphi для профессионалов. Элементы управления Win32

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

 


Знаете ли Вы, что абстрактный класс - это класс, содержащий хотя бы один виртуальный метод. Абстрактные классы не бывают изолированными, т.е. всегда абстрактный класс должен быть наследуемым. Поскольку у чисто виртуального метода нет тела, то создать объект абстрактного класса невозможно. Абстрактным классом можно назвать класс, специально определенный для обеспечения наследования характеристик порожденными классами.

НОВОСТИ ФОРУМА

Форум Рыцари теории эфира


Рыцари теории эфира
 10.11.2021 - 12:37: ПЕРСОНАЛИИ - Personalias -> WHO IS WHO - КТО ЕСТЬ КТО - Карим_Хайдаров.
10.11.2021 - 12:36: СОВЕСТЬ - Conscience -> РАСЧЕЛОВЕЧИВАНИЕ ЧЕЛОВЕКА. КОМУ ЭТО НАДО? - Карим_Хайдаров.
10.11.2021 - 12:36: ВОСПИТАНИЕ, ПРОСВЕЩЕНИЕ, ОБРАЗОВАНИЕ - Upbringing, Inlightening, Education -> Просвещение от д.м.н. Александра Алексеевича Редько - Карим_Хайдаров.
10.11.2021 - 12:35: ЭКОЛОГИЯ - Ecology -> Биологическая безопасность населения - Карим_Хайдаров.
10.11.2021 - 12:34: ВОЙНА, ПОЛИТИКА И НАУКА - War, Politics and Science -> Проблема государственного терроризма - Карим_Хайдаров.
10.11.2021 - 12:34: ВОЙНА, ПОЛИТИКА И НАУКА - War, Politics and Science -> ПРАВОСУДИЯ.НЕТ - Карим_Хайдаров.
10.11.2021 - 12:34: ВОСПИТАНИЕ, ПРОСВЕЩЕНИЕ, ОБРАЗОВАНИЕ - Upbringing, Inlightening, Education -> Просвещение от Вадима Глогера, США - Карим_Хайдаров.
10.11.2021 - 09:18: НОВЫЕ ТЕХНОЛОГИИ - New Technologies -> Волновая генетика Петра Гаряева, 5G-контроль и управление - Карим_Хайдаров.
10.11.2021 - 09:18: ЭКОЛОГИЯ - Ecology -> ЭКОЛОГИЯ ДЛЯ ВСЕХ - Карим_Хайдаров.
10.11.2021 - 09:16: ЭКОЛОГИЯ - Ecology -> ПРОБЛЕМЫ МЕДИЦИНЫ - Карим_Хайдаров.
10.11.2021 - 09:15: ВОСПИТАНИЕ, ПРОСВЕЩЕНИЕ, ОБРАЗОВАНИЕ - Upbringing, Inlightening, Education -> Просвещение от Екатерины Коваленко - Карим_Хайдаров.
10.11.2021 - 09:13: ВОСПИТАНИЕ, ПРОСВЕЩЕНИЕ, ОБРАЗОВАНИЕ - Upbringing, Inlightening, Education -> Просвещение от Вильгельма Варкентина - Карим_Хайдаров.
Bourabai Research - Технологии XXI века Bourabai Research Institution