Вкладка Standard. Компонент TActionList

   
На этом шаге мы рассмотрим компонент TActionList

   
Компонент TActionList (Список действий) позволяет объединить все реакции на действия
пользователя (события) в одном месте, что повышает эффективность проектирования. В списке действий
перечисляются все действия, которые должны выполняться, и затем эти действия связываются с клиентскими
элементами управления, для чего используется свойство Action элемента управления. Если элемент управления
подключен к списку действий, то реакция на событие будет такая, как описано в соответствующем обработчике
события списка действий.

   
Для создания обработчика события списка действий поместите компонент TActionList
в форму и дважды щелкните на нем, при этом откроется редактор списка действий (рис. 1), где и
вводятся необходимые обработчики событий, впоследствии связываемые с соответствующими компонентами.


Рис.1.Редактор списка действий

   

   
Как связывается действие и компонент с помощью инспектора объектов, показано на рис. 2.


Рис.2.Связывание обработчика события с элементом управления в инспекторе объектов

   

   
Рассмотрим свойства компонента TActionList.

   

Таблица 1. Свойства компонента TActionList

СвойствоОписание
property ActionCount: Integer;Содержит количество определенных в компоненте действий (только для чтения)
property Actions [Index: Integer]: TContainedAction;Позволяет программе обратиться к нужному действию (объекту класса TContainedAction)
property Images: TCustomImageList;Содержит имя компонента класса TImageList

   
Редактор компонента создает объекты класса TAction. Свойства класса TAction, в основном,
определяют те значения, которые будут иметь одноименные свойства всех компонентов или команд меню, связанных
общим действием (если, разумеется, компонент или команда меню имеет данное свойство).

   
Свойства класса TAction перечислены в таблице.

   

Таблица 1. Свойства класса TAction

СвойствоОписание
property Caption: String;Содержит строку, которая будет устанавливаться в свойствах Caption всех компонентов, связанных данным действием
property Checked: Boolean;Содержит значение, которое будет устанавливаться в свойствах Checked
property DisableIfNoHandler: Boolean;Указывает, будут ли недоступны связанные компоненты, если для действия не определен обработчик OnExecute
property Enabled: Boolean;Содержит значение, которое будет устанавливаться в свойствах Enabled
property HelpContext: THelpContext;Содержит значение, которое будет устанавливаться в свойствах HelpContext
property Hint: String;Содержит строку, которая будет устанавливаться в свойствах Hint
property ImageIndex: Integer;Содержит индекс изображения в хранилище, указанном в свойстве Images компонента. Это изображение будет связанно с компонентом данного действия
property ShortCut: TShortCut;Содержит значение, которое будет устанавливаться в свойствах ShortCut
property Visible: Boolean;Содержит значение, которое будет устанавливаться в свойствах Visible

   
События класса TAction:

   

Таблица 1. События класса TAction

СобытиеОписание
property OnExecute: TNotifyEvent;Возникает при щелчке мышью на одном из компонентов, связанных общим действием. Обработчик этого события должен реализовать нужное действие
THintEvent = procedure (var HintStr: String; var CanShow: Boolean) of Object;
property OnHint: THintEvent;
Возникает при помещении указателя мыши на одном из связанных общим действием компонентов. Его обработчик по умолчанию выводит оперативную подсказку со строкой HintStr
property OnUpdate: TNotifyEvent;Возникает, когда очередь сообщений для приложения пуста или когда обновляется содержимое списка действий

   
Приведем небольшой пример программы, которая показывает использование списка действий.

   
Поместим на форму следующие компоненты: Memo1, Button1, Button2, Button3,
ActionList1. Свяжем действие и компонент с помощью инспектора объектов, как показано на рис. 2. Для
компонента Action1 создадим следующий обработчик:

procedure TForm1.Action1Execute (Sender: TObject);
begin
   Memo1.Lines.Add ('Нажата кнопка 1');
end;

   
Для компонента Action2 создадим следующий обработчик:

procedure TForm1.Action2Execute (Sender: TObject);
begin
   Memo1.Lines.Add ('Нажата кнопка 2');
end;

   
Для компонента Action3 создадим следующий обработчик:

procedure TForm1.Action3Execute (Sender: TObject);
begin
   Memo1.Lines.Add ('Нажата кнопка 3');
end;

   
Если вы все сделали правильно, то у вас должно получиться следующее:


Рис.3.Использование списка действий

   

unit Unit1;
   interface
   uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ActnList, StdCtrls;
   type
  TForm1 = class(TForm)
    ActionList1: TActionList;
    Button1: TButton;
    Button2: TButton;
    Button3: TButton;
    Action1: TAction;
    Action2: TAction;
    Action3: TAction;
    Memo1: TMemo;
    procedure Action1Execute (Sender: TObject);
    procedure Action2Execute (Sender: TObject);
    procedure Action3Execute (Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
   var
  Form1: TForm1;
   implementation
   {$R *.dfm}
   procedure TForm1.Action1Execute (Sender: TObject);
begin
  Memo1.Lines.Add ('Нажата кнопка 1');
end;
   procedure TForm1.Action2Execute (Sender: TObject);
begin
  Memo1.Lines.Add ('Нажата кнопка 2');
end;
   procedure TForm1.Action3Execute (Sender: TObject);
begin
  Memo1.Lines.Add ('Нажата кнопка 3');
end;
  end.

Текст этого примера можно взять здесь.

   
В следующих шагах мы рассмотрим компоненты вкладки Additional
-->

Предыдущий шаг
Содержание

Следующий шаг
-->



Вы можете оставить комментарий, или Трекбэк с вашего сайта.

Оставить комментарий