TActivityIndicator (индикатор активности) — это компонент, представляющий из себя анимированный графический объект и, показывающий, что приложение выполняет некоторую работу (активность).
Для компонента можно установить такие свойства как цвет, размер, тип, скорость вращения и т.д.
| Основная информация по компоненту | ||
| Вкладка палитры компонентов | Windows 10 | |
| Исходник официального примера и документация | DocWiki | |
| В какой версии Delphi появился | Delphi 10 Seattle | |
В приложении демонстрируется работа TActivityIndicator и показывается, каким образом можно изменять его свойства.
Тестовое приложение использует следующие элементы управления:
- AI: Индикатор активности.
- grpIndicatorSize: устанавливает размер индикатора активности.
- grpIndicatorColor: устанавливает цвет индикатора активности.
- grpIndicatorType: устанавливает тип индикатора активности.
- trkFrameDelay: устанавливает задержку кадра индикатора активности.
- chkAnimate: переключает свойство Animate индикатора активности.
- cbxFormColor: устанавливает цвет формы, если текущий стиль — Windows.
- cbxVclStyles: комбинированное поле, которое позволяет вам изменить стиль приложения.
Внешний вид демонстрационного приложения представлен на рисунке ниже:

Описание основных свойств компонента
IndicatorSize
Это свойство изменяет размер индикатора. Описание:
IndicatorSize: TActivityIndicatorSize; type TActivityIndicatorSize = (aisSmall, aisMedium, aisLarge, aisXLarge);
- aisSmall — размер индикатора 24×24 px.
- aisMedium — размер индикатора 32×32 px (используется по умолчанию).
- aisLarge — размер индикатора 48×48 px.
- aisXLarge — размер индикатора 64×64 px.
IndicatorType
Тип индикатора. Описание:
IndicatorType: TActivityIndicatorType; type TActivityIndicatorType = (aitMomentumDots, aitRotatingSector, aitSectorRing);
- aitMomentumDots: по умолчанию. Традиционная Windows 8/10 вращающаяся последовательность точек.
- aitRotatingSector: чередующиеся сектора сегментированного кольца. Подсвечиваются последовательно для указания активности.
- aitSectorRing: секторы сегментированного кольца подсвечиваются последовательно до тех пор, пока кольцо не будет полностью подсвечено. При следующем проходе каждый сектор отображается в затемненном состоянии.
IndicatorColor
Изменяет цвет индикатора. Всего доступно две цветовых схемы для TActivityIndicator. Описание:
IndicatorColor: TActivityIndicatorColor; type TActivityIndicatorColor = (aicBlack, aicWhite);
- aicBlack: по умолчанию. Элементы индикатора черные
- aicWhite: элементы индикатора белые.
FrameDelay
Задержка кадра. Чем меньше задержка, тем быстрее индикатор «крутится». Описание:
FrameDelay: Word;
Animate
Включает/выключает анимацию индикатора. Описание:
Animate: Boolean;
Демонстрационный пример
В зависимости от выбранных настроек, приложение демонстрирует изменение различных свойств компонента TActivityIndicator.
Для того, чтобы индикатор начал показываться, необходимо переключить его свойство Animate в значение True.
Ниже представлен листинг кода из официального примера, показывающий изменение свойств IndicatorColor, IndicatorSize, IndicatorType и FrameDelay:
procedure TActivityIndicatorForm.grpIndicatorColorClick(Sender: TObject); begin AI.IndicatorColor := TActivityIndicatorColor(grpIndicatorColor.ItemIndex); end; procedure TActivityIndicatorForm.grpIndicatorSizeClick(Sender: TObject); begin AI.IndicatorSize := TActivityIndicatorSize(grpIndicatorSize.ItemIndex); end; procedure TActivityIndicatorForm.grpIndicatorTypeClick(Sender: TObject); begin AI.IndicatorType := TActivityIndicatorType(grpIndicatorType.ItemIndex); end; procedure TActivityIndicatorForm.trkFrameDelayChange(Sender: TObject); begin AI.FrameDelay := trkFrameDelay.Position * 10; lblFrameDelay.Caption := 'Frame Delay (' + IntToStr(AI.FrameDelay) + ')'; end;
Также, в примере, для большей наглядности демонстрации TActivityIndicator реализовано изменение стиля окна приложения. Вы можете самостоятельно зайти в опции проекта: Project — Options — Application Appearance — Custom Styles и выбрать стили, которые будет использовать демонстрационное приложение.
При запуске приложение в обработчике OnCreate главной формы выполняется код, заполняющий список cbxVclStyles:
procedure TActivityIndicatorForm.FormCreate(Sender: TObject); var StyleName: string; begin for StyleName in TStyleManager.StyleNames do cbxVclStyles.Items.Add(StyleName); cbxVclStyles.ItemIndex := cbxVclStyles.Items.IndexOf(TStyleManager.ActiveStyle.Name); end;
На рисунке ниже представлен пример работающего приложения в котором выбран стиль «Light», которого нет изначально в демонстрационном приложении:
При подготовке стати использовалась информация со следующих ресурсов:
- Официальный репозиторий демострационных примеров Delphi на SourceForge
- Описание компонента и его свойств на сайте Embarcadero
