На этом шаге мы рассмотрим компонент TRxSwitch.
Компонент TRxSwitch относится к набору "безделушек"
наряду с такими компонентами библиотеки, как TRxDice и
TRxClock, и представляет собой реализацию в виде компонента
Delphi двухпозиционного переключателя (аналогичен компоненту
TCheckBox), используется для того, чтобы пользователь мог
указать свое решение (например, да/нет) (рис.1).
Рис.1. Компонент RxSwitch1 в положении вкл. и
компонент RxSwitch2 в положении выкл.
Можно изменить изображения для двух положений переключателя с помощью свойств
GlyphOn и GlyphOff. Текущее состояние
переключателя определяется свойством StateOn.
Для определения "горячей" клавиши, переключающей состояние элемента,
служит свойство ToggleKey. Свойство TextPosition
управляет расположением текста Caption относительно изображения
переключателя.
Некоторые свойства компонента:
Таблица 1. Свойства и методы компонента TRxSwitch
Свойство | Описание |
---|---|
property GlyphOn: TBitmap; | Свойство определяет графическое изображение (битовый образ), используемое для изображения переключателя в состоянии "On" (включено). |
property GlyphOff: TBitmap; | Свойство определяет графическое изображение (битовый образ), используемое для изображения переключателя в состоянии "Off" (выключено). |
property StateOn: Boolean; | Свойство определяет текущее состояние перерключателя:
|
property ToggleKey: TShortCut; | Свойство позволяет определить "горячую" клавишу, при нажатии на которую происходит изменение состояния переключателя на противоположное (если переключатель в данный момент имеет фокус ввода). |
property TextPosition: TTextPos; | Свойство TextPosition управляет расположением текста Caption относительно изображения переключателя. |
type TTextPos = (tpRight, tpLeft, tpAbove, tpBelow, tpNone); |
Тип задает возможные значения расположения текста для свойства TextPosition. |
property OnOff: TNotifyEvent; | Событие происходит при изменении состояния переключателя с "включено" (On) на "выключено" (Off), то есть при "выключении" переключателя. |
property OnOn: TNotifyEvent; | Событие происходит при изменении состояния переключателя с "выключено" (Off) на "включено" (On), то есть при "включении" переключателя. |
property ShowFocus: Boolean; | Свойство определяет, будет ли отображаться прерывистый прямоугольник вокруг элемента управления, если у него находится фокус ввода. Если это свойство установлено в значение True и элемент имеет фокус ввода (при этом свойство TabStop должно также иметь значение True), то прямоугольник отображается, в противном случае - нет. |
procedure ToggleSwitch; | Метод вызывает изменение состояния переключателя на противоположное, изменяя значение свойства StateOn. |
Приведем пример: создадим приложение, которое позволит продемонстрировать работу компонента
TRxSwitch.
Поместим на форму компоненты RxSwitch1,
RxLabel1 (рис.2).
Рис.2. Форма с размещенными на ней компонентами
RxSwitch1, RxLabel1
Компонент RxSwitch1:
свойству Caption придадим значение ‘Выкл.',
свойству StateOn значение False, свойству
TextPosition значение tpBellow
(текст находится под изображением).
Компонент RxLabel1 изначально сделаем невидимым, т.е. свойству
Visible придадим значение False,
свойству Caption - ‘Работает!!!'.
Для компонента RxSwitch1 напишем обработчик события
OnOff:
procedure TForm1.RxSwitch1Off(Sender: TObject); begin RxSwitch1.Caption:='Выкл.'; RxLabel1.Visible:=False; end;
Для компонента RxSwitch1 напишем обработчик события
OnOn:
procedure TForm1.RxSwitch1On(Sender: TObject); begin RxSwitch1.Caption:='Вкл.'; RxLabel1.Visible:=True; end;
Работа программы показана на рис.3(а-б).
Рис.3а. Переключатель в положении выкл.
Рис.3б. Переключатель в положении вкл.
Текст этого примера можно взять здесь.
На следующем шаге мы рассмотрим компонент TRxDice.