В данном уроке изучим TactionList. На двух прошлых уроках мы с вами посмотрели, как можно динамически создавать компоненты управления. Но у созданных нами кнопок был один недостаток - при нажатии на них ничего не происходило. Давайте сейчас посмотрим, как к созданной динамически кнопке можно добавить (также динамически) код, который будет выполняться при нажатии на ней.
Возьмите за основу программу из урока 10. Добавьте на её форму компонент ActionList с вкладки Standard.
Для добавления действия в наш компонент ActionList1 сделайте двойной щелчок на нем. Появится окно Editing Form1.ActionList1. Нажмите в нем на кнопку New Action,
в правом списке появится новое действие Action1.
Сделайте на нем двойной щелчок для перехода в окно кода. Добавите ниже приведенный код.
Код:
procedure TForm1.Action1Execute(Sender: TObject);
begin
MessageDlg('Событие для новой кнопки',
mtConfirmation,
[mbOK], 0);
end;
Мы добавили в нашу программу некоторое действие (появление MessageBox). Это действие называется Action1. Теперь свяжем этой действие с нашей кнопкой. Для этого добавьте в обработчик Button1Click ниже приведенный код.
Код:
В этой строке мы связываем свойство Action для кнопки с конкретным событием Action1.
Это свойство присутствует и в Инспекторе объектов. Теперь запускайте программу, нажимайте на кнопку "Дополнительно", потом на нашу динамически созданную кнопку. Появится MessageBox - как мы и задумывали. Таким образом мы присоединили к динамически созданной кнопке некоторое действие.
Всё на этом урок закончен.