уважаемые посетители блога, если Вам понравилась, то, пожалуйста, помогите автору с лечением. Подробности тут.

Библиотека FireMonkey (FMX, FMX2) впервые появилась в виде одной из стандартных библиотек в Delphi XE2. Вместе с появлением новой библиотеке в составе Delphi появились и новые вопросы, например, как использовать стандартный TActionList в Delphi при разработке с FMX? Представленный ниже пример показывает как использовать ActionList в FireMonkey, редактировать действия в списке, назначать действия определенным элементам управления на форме и так далее.

Основная информация по компоненту
Вкладка палитры компонентов Standard
Исходник официального примера и документация SourceForge DocWiki

В этом примере показано, как использовать действия (TActions) в FireMonkey. Демонстрируется то, как использовать редактор TActionList для создания действий и назначения клиентских элементов управления для выполнения этих действий.

Внешний вид демонстрационного приложения представлен на рисунке ниже:

 

Использование компонента TActionList

Для воспроизведения этого примера практически не требуется написания кода, поэтому, для того, чтобы разобраться как работает пример, не лишним будет привести вид окна «Structure» в IDE Delphi:

Как можно увидеть на рисунке, главная форма приложения помимо компонентов меню и самого TActionList содержит также панель (TPanel) с названием PanelValueRange, которая по умолчанию скрыта. Список действий (TActionList) содержит несколько различных действие сгруппированных по категориям — Edit, File, View и т.д.

Двойной клик по компоненту TActionList на форме откроет редактор списка действий, в котором мы можем увидеть все созданные действия и категории:

Используя этот редактор, мы можем создавать различные действия (TAction). При этом, в TActionList FireMonkey есть возможность создать ряд стандартных действий, каждое из которых выполняет определенные действия с элементами управления.

Описание всех стандартных действий у 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):

  1. Вызываем двойным кликом по компоненту TActionList редактор списка действий
  2. Создаем новое действие, выбрав в списке кнопки «New Action» один из пунктов
  3. Для созданного действия (TAction) определяем необходимые свойства, например, указываем какой элемент управления на форме необходимо показать
  4. Назначаем созданное действие одному из элементов управления на форме. Для этого выбираем интересующий нас элемент управления и с списке выбора для свойства Action указываем созданное нами действие TAction.

При подготовке статьи использовалась информация со следующих ресурсов:

  1. Официальный репозиторий демонстрационных примеров Delphi на SourceForge
  2. Документация по компоненту на сайте Embarcadero

уважаемые посетители блога, если Вам понравилась, то, пожалуйста, помогите автору с лечением. Подробности тут.