Библиотека FireMonkey (FMX, FMX2) впервые появилась в виде одной из стандартных библиотек в Delphi XE2. Вместе с появлением новой библиотеке в составе Delphi появились и новые вопросы, например, как использовать стандартный TActionList в Delphi при разработке с FMX? Представленный ниже пример показывает как использовать ActionList в FireMonkey, редактировать действия в списке, назначать действия определенным элементам управления на форме и так далее.
Основная информация по компоненту | ||
Вкладка палитры компонентов | Standard | |
Исходник официального примера и документация | DocWiki |
В этом примере показано, как использовать действия (TActions) в FireMonkey. Демонстрируется то, как использовать редактор TActionList для создания действий и назначения клиентских элементов управления для выполнения этих действий.
Внешний вид демонстрационного приложения представлен на рисунке ниже:
Использование компонента TActionList
Для воспроизведения этого примера практически не требуется написания кода, поэтому, для того, чтобы разобраться как работает пример, не лишним будет привести вид окна «Structure» в IDE Delphi:
Как можно увидеть на рисунке, главная форма приложения помимо компонентов меню и самого TActionList содержит также панель (TPanel) с названием PanelValueRange, которая по умолчанию скрыта. Список действий (TActionList) содержит несколько различных действие сгруппированных по категориям — Edit, File, View и т.д.
Двойной клик по компоненту TActionList на форме откроет редактор списка действий, в котором мы можем увидеть все созданные действия и категории:
Используя этот редактор, мы можем создавать различные действия (TAction). При этом, в TActionList FireMonkey есть возможность создать ряд стандартных действий, каждое из которых выполняет определенные действия с элементами управления.
Для добавления нового действия в список необходимо в редакторе действий нажать кнопку «New Action» и в списке выбрать какое действие мы хотим добавить — свое или одно из стандартных:
Если Вы выбираете пункт «New Standard Action», но на выбор Вам предлагается ряд стандартных действий, сгруппированных по категориям:
Стандартные действия уже содержат необходимый код для выполнения чего-либо и, соответственно, освобождают разработчика от написания дополнительного кода. Так, например, в списке действий из демонстрационного примера в категории View содержится два стандартный действия TViewAction под названиями ActionView1 и ActionView2.
Согласно официальной документации, стандартное действие TViewAction выполняется клиентами (элементами управления, командами меню, кнопками панели инструментов), связанными с этим действием, и показывает компонент типа TFmxObject, хранящийся в свойстве FmxObject.
Таким образом, для того, чтобы посмотреть с каким элементом управления связано действие ActionView1 достаточно выбрать его в редакторе действий и посмотреть свойство FMXObject:
Следовательно, действие ActionView1 показывает нам скрытую по умолчанию панель PanelValueRange.
Теперь разберемся когда это действие срабатывает. Для этого делаем двойной клик по компоненту MainMenu1 на главной форме приложения, в открывшемся списке выбираем элемент «View -> PanelValueRange» и смотрим в Object Inspector свойство Action:
Итого: действие ActionsView1 — это стандартное действие, которое показывает панель PanelValueRange при выборе элемента меню «View -> PanelValueRange».
Чтобы продемонстрировать работу действия запустите демонстрационной приложение и выберете указанный выше элемент меню. Внешний вид приложения при этом будет следующим:
В зависимости от того, какое действие вы хотите добавить в список TActionList Вам потребуется определять и свойства этого самого действия (TAction) или обработчики событий. Так, например, для действия ActionView2 свойство FmxObject оставлено пустым, однако определен обработчик события OnCreateComponent:
procedure TMainForm.ViewAction2CreateComponent(Sender: TObject; var NewComponent: TComponent); begin NewComponent := TActiveForm.Create(self); end;
Выполнение этого обработчика создает вторую форму приложения:
Исходя из всего вышесказанного, определим порядок работы с TActionList FireMonkey (FMX):
- Вызываем двойным кликом по компоненту TActionList редактор списка действий
- Создаем новое действие, выбрав в списке кнопки «New Action» один из пунктов
- Для созданного действия (TAction) определяем необходимые свойства, например, указываем какой элемент управления на форме необходимо показать
- Назначаем созданное действие одному из элементов управления на форме. Для этого выбираем интересующий нас элемент управления и с списке выбора для свойства Action указываем созданное нами действие TAction.
При подготовке статьи использовалась информация со следующих ресурсов:
- Официальный репозиторий демонстрационных примеров Delphi на SourceForge
- Документация по компоненту на сайте Embarcadero