Шаг 23 - Компонент TActionList

Этот компонент - gif/23_1.gif (189 b) позволяет централизовать логику программы. Как пример. В программе существует главное меню и, скажем, панель кнопок. Еще могут быть какие-то клавиатурные сокращения и т.п. В общем, одна и та же процедура должна вызываться с разных мест. Это приводит к некоторому разбросу и конфликтности логики программы.

Вот тут-то и нужен TActionList. У каждого TControl компонента есть свойство Action. Это свойство содержит т.н действие из списка TActionList. Оно же и содержит единственный обработчик, который вызывается при возникновении события OnExecute. Это может быть и OnClick или что-то в этом роде. Для тех, кто работал с OWL или MFC, наиболее близким будет событие OnCommand.

Это теория. Но... нужно подкреплять теорию практикой :). Откройте приложение MDI, созданное в 6 шаге. Там внизу есть значок TActionList. Два раза щелкните по нему и откроется окно редактора действий:

gif/23_2.gif (3264 b)

Для большего удобства дейтвия подразделяются на категории, аналогичные пунктам меню. Для создания новых действий можно выбрать команду контекстного меню New Action или New Standard Action. Сейчас я объясню, чем они отличаются. Дело в том, что в VCL существют так называемые стандартные действия - они одинаковы по отношению к любоиу приложению. Например, WindowsCascade выстраивает окна каскадом, и т.д. Контролировать вот это исполнение по умолчанию нельзя, более того, даже кода не видно, который эти дествия вызывает. Однако можно написать код продолжения обработки.

По команде New Standard Action вызывается список этих самых стандартных действий. Более подробную информацию о них можно получить командой Help. Команда New Action просто создает новое пустое действие. По существу это объект, свойства которого можно контролировать с помощью Инспектора объектов. Можно поменять имя, подпись по умолчанию, индекс иконки, категорию и, самое главное, обработчик. Эти свойства встречались уже не раз.

Чтобы сделать категорию, нужно прибегнуть к ухищрению - в свойство Category действий, которые должны входить в эту категорию, нужно вписать ее название. Если категория уже существует, то дествия переносятся в нее, иначе создается новая категория.

Про иконки. Иконки, которые используются в TActionList, записываются в TImageList gif/23_3.gif (187 b) с палитры Win32 и нужным действиям присваивается соответствующий индекс иконки. О этом компоненте еще пойдет разговор, кратко - по щедчку правой мышью (или правой кнопкой мыши, у кого доп. мышей нет ;)) откроется редактор списка изображений. Под каждым изображением стоит индекс. Их можно добавлять, перемещать и т.п.

Кто забыл - нужное дейтвие для данного компонента выбирается из выпадающего списка свойства Action. Иконки и подпись подстроятся автоматически. Вот и все, не так сложно, как хотелось бы ;).


Предыдущий Шаг | Следующий Шаг | Оглавление
Автор Аванесов Самвел.