Шаг 16.
Компоненты библиотеки RX.
Вкладка Controls. Компонент TRxClock

    На этом шаге мы рассмотрим компонент TRxClock.

    Компонент TRxClock (рис.1) позволяет отображать время суток в цифровом или аналоговом виде (вид отображения задается с помощью свойства ShowMode).


Рис.1. Компонент TRxClock

    При цифровом отображении формат времени задается комбинацией значений свойств LeadingZero, TwelveHour и ShowSeconds.

    Дополнительно имеется функция будильника. При установке значения AlarmEnabled в True, при наступлении времени суток, заданного свойствами AlarmHour, AlarmMinute и AlarmSecond, происходит событие OnAlarm, в обработчике которого вы можете произвести необходимые действия.

    Рассмотрим свойства данного компонента:

Таблица 1. Свойства компонента TRxClock
Свойство Описание
property ShowMode: TShowClock; Свойство управляет режимом отображения времени:
  • scDigital - цифровое отображение времени шрифтом, с заданным свойством Font (формат времени задается комбинацией значений свойств LeadingZero, TwelveHour и ShowSeconds).
  • scAnalog - аналоговый вид часов(свойство ShowSeconds определяет, будет ли показываться секундная стрелка, свойство DotsColor - цвет для точек, обозначающих часы).
type
TShowClock = (scDigital, scAnalog);
Тип служит для задания допустимых значений режима отображения компонента TRxClock (значение свойства ShowMode).
property LeadingZero: Boolean; Свойство определяет, будут ли добавляться лидирующие нули при форматировании времени (только для значения часов), если задано цифровое отображение часов (свойство ShowMode = scDigital).
property TwelveHour: Boolean; Свойство определяет, как будет форматироваться время, если задано цифровое отображение часов (свойство ShowMode = scDigital):
  • TwelveHour = False (по умолчанию) - диапазон значений часов 0..23;
  • TwelveHour = True - часы принимают значения 1..12 и при форматировании времени используются значения глобальных переменных модуля SysUtils TimeAMString и TimePMString.
property ShowSeconds: Boolean; Свойство задает, будут ли отображаться секунды при цифровом изображении часов (при значении свойства ShowMode = scDigital) или секундная стрелка - при аналоговом.
property DotsColor: TColor; Свойство задает цвет для точек, обозначающих часы. Имеет смысл при значениях свойств ShowMode = scAnalog и Ctl3D = True.
property AlarmEnabled: Boolean; AlarmEnabled = True - при наступлении времени суток, заданного свойствами AlarmHour, AlarmMinute и AlarmSecond, происходит событие OnAlarm, в обработчике которого вы можете произвести необходимые действия.
property AlarmHour: Byte; Свойство задает (совместно со значениями AlarmMinute и AlarmSecond) время срабатывания "будильника", т.е. время, в которое произойдет событие OnAlarm при установке в True свойства AlarmEnabled.

property AlarmMinute: Byte;

Свойство задает (совместно со значениями AlarmHour и AlarmSecond) время срабатывания "будильника", т.е. время, в которое произойдет событие OnAlarm при установке в True свойства AlarmEnabled.
property AlarmSecond: Byte; Свойство задает (совместно со значениями AlarmHour и AlarmMinute) время срабатывания "будильника", т.е. время, в которое произойдет событие OnAlarm при установке в True свойства AlarmEnabled.

property OnAlarm: TNotifyEvent;

Событие OnAlarm происходит при наступлении времени суток, заданного свойствами AlarmHour, AlarmMinute и AlarmSecond, если свойство AlarmEnabled установлено в значение True.

    Приведем пример: создадим приложение, которое позволит менять внешний вид компонента TRxClock, по нажатию кнопки и покажет работу будильника.

    Поместим на форму компоненты RxClock1, RxLabel1, RxLabel2 и RxSpeedButton1 (рис.2).


Рис.2. Форма с размещенными на ней компонентами RxClock1 , RxLabel1 ,RxLabel2 и RxSpeedButton1

    RxLabel1 (“Внешний вид”) – это надпись рядом с кнопкой RxSpeedButton1. При нажатии на кнопку свойство Caption данного компонента меняет свое значение ('scAnalog', 'scDigital') и внешний вид компонента RxClock1 соответственно меняется (scAnalog, scDigital).    

    Когда реальное время становится равным значениям, заданным в свойствах AlarmHour, AlarmMinute и AlarmSecond.

    Для компонента RxSpeedButton1 напишем обработчик события OnClick:

procedure TForm1.RxSpeedButton1Click(Sender: TObject);
begin
    if  (RxSpeedButton1.Caption='scDigital') then
         begin
              RxSpeedButton1.Caption:='scAnalog';
              RxClock1.ShowMode:=scAnalog;
         end
       else
         begin
              RxSpeedButton1.Caption:='scDigital';
              RxClock1.ShowMode:=scDigital;
         end;
end;

    Для компонента RxClock1 напишем обработчик события OnAlarm:

procedure TForm1.RxClock1Alarm(Sender: TObject);
begin
   for i:=1 to 10 do
         begin
             RxLabel2.Visible:=True;        //Компонент RxLabel2 становится видимым
             Form1.Color:=clLime;           //Цвет формы меняется на цвет clLime
             RxLabel2.Caption:='Вставай!!!'
         end;
end;

Работа программы показана на рис.3(а-в).


Рис.3а. Свойство ShowMode в значении scDigital


Рис.3б. Свойство ShowMode в значении scAnalog


Рис.3в. Сработал будильник

    Текст этого примера можно взять здесь.

    На следующем шаге мы рассмотрим компонент TAnimatedImage.




Предыдущий шаг Содержание Следующий шаг