Компонент TToggleSwitch появился впервые в Delphi 10 Seattle и представляет собой переключатель (тумблер), аналогично TCheckBox, но с некоторыми дополнительными свойствами.
| Основная информация по компоненту | ||
| Вкладка палитры компонентов | Windows 10 | |
| Исходник официального примера и документация | DocWiki | |
Демонстрационный пример показывает возможности компонента TToggleSwitch.
На главной форме демонстрационного приложения расположены следующие компоненты:
- TB: TToggleSwitch.
- grpAlignment: определяет как будет располагаться текст у TToggleSwitch — слева или справа от тумблера.
- grpState: переключает состояние тумблера.
- grpColors: устанавливает цвет переключателя и его частей.
- grpstateCaptions: определяет текст заголовка (Caption) компонента TToggleSwitch.
- chkReadOnly: устанавливает свойство ReadOnly тумблера.
- chkShowStateCaptions: указывает, отображает ли тумблер заголовок (Caption).
- chkEnabled: включает или отключает тумблер.
- cbxVclStyles: поле со списком, которое позволяет вам изменить стиль приложения.
Внешний вид демонстрационного приложения представлен на рисунке ниже:
Использование компонента
В отличие от обычного компонента TCheckbox, TToggleSwitch позволяет:
- Назначать свой уникальный заголовок (Caption) для каждого состояния (включен/выключен). Для этого используется группа свойств компонента StateCaptions.
- Определять цвета каждого элемента у компонента: рамка компонента (свойство FrameColor), элемент переключателя (свойство ThumbColor) и непосредственно видимую область компонента (свойство Color).
Демонстрационный пример
Демонстрационный пример показывает работу с описанными выше уникальными свойствами компонента TToggleSwitch.
Программное переключение состояния TToggleSwitch осуществляется следующим образом:
procedure TToggleSwitchForm.grpStateClick(Sender: TObject); begin TS.State := TToggleSwitchState(grpState.ItemIndex); end;
где TToggleSwitchState — это:
TToggleSwitchState = (tssOff, tssOn);
Заголовки, отображаемые при каждом состоянии TToggleSwitch меняются следующим образом:
procedure TToggleSwitchForm.edtCaptionOffChange(Sender: TObject); begin //меняем заголовок, когда тумблер выключен TS.StateCaptions.CaptionOff := edtCaptionOff.Text; end; procedure TToggleSwitchForm.edtCaptionOnChange(Sender: TObject); begin //меняем заголовок, когда тумблер включен TS.StateCaptions.CaptionOn := edtCaptionOn.Text; end;
На рисунке ниже представлен пример работающего демонстрационного приложения с настроенными свойствами TToggleSwitch:
При подготовке статьи использовалась информация со следующих ресурсов:
- Официальный репозиторий демострационных примеров Delphi на SourceForge
- Документация по компоненту на сайте Embarcadero


