Оглавление Lazarus: проект Actions



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

Создадим новое приложение:
Файл/Новый / Project / Application
- Появилась форма и окно редактора.
- Ставлю 2 кнопки: Button1  Button2  - окрашивать форму в синий и красный цвет.
- на форме устанавливаю размер шрифта = 11 Tahoma 
- на кнопках: ParentFont = true, поэтому на кнопках тот же шрифт.
- устанавливаю компонент AL1: TActionList;

двойной щелчок на значке  AL1 - появляется редактор
щелкаем Add - добавляется действие Action1: TAction;
переименовываю Action1 в ActBlue - красить форму в синий цвет,
задаю Caption = &Синий ( & - чтобы использовать горячую клавишу С)
Перехожу на закладку События, делаю дв щелчок на OnExecute.
В окне редактора появляется шаблон для обработчика события: 
TForm1.actBlueExecute. 
Вписываю текст:
 Form1.Color:= clBlue; 
Категория ActBlue  - неопределенная (None)
Аналогично создаю обработчика ActRed для окраски формы в красный цвет.

Далее для свойства Action кнопки Button1 выбираю из  выпадающего списка 
ActBlue, а для  свойства Action кнопки Button2 - ActRed.
Теперь при запуске приложения на кнопках появляются надписи
Синий  и Красный (первые буквы подчеркнуты). Щелкаем эти кнопки и видим окрашивание
 формы в синий и красный цвета. Проверяем горячие клавиши: нажимаем  Alt С - форма синяя,
 Alt К - красная (буквы заглавные, русские).

Теперь добавляю главное меню (с панели компонентов).
Первый пункт называю itBlue: TMenuItem; второй - itRed: TMenuItem;
(Для добавления пунктов в меню используйте прав щелчок в редакторе меню).
У этих пунктов задаем свойства Action, для них выбираем: ActBlue и 
ActRed из выпадающего списка. 
Теперь при запуске приложения на пунктах меню появляются надписи
Синий  и Красный (первые буквы подчеркнуты). Щелкаем эти пункты и видим окрашивание 
формы в синий и красный цвета, т е теперь можно управлять окраской и из меню  и кнопками.
Осталась проблема: как удалить нечаянно созданные обработчики
Button1Click, Button2Click и itBlueClick.
Тела обработчиков удалил (оставил begin end; )
Удаляю Button1Click, Button2Click и itBlueClick и в интерфейсной части и в 
implementation. Компилирую... Нормально !
Наверное, найдется более короткий путь, но так - тоже работает.

Для уменьшения размера .exe-файла выполняю команду: 
str.cmd actions1.exe 
где str.cmd - текстовый файл такого содержания:
E:\lazarus\fpc\2.0.4\bin\i386-win32\strip.exe %1
E:\lazarus\fpc\2.0.4\bin\i386-win32\upx.exe %1
то есть запускаются 2 утилиты, описанные в документации.

Скачать RAR-архив исходников + .exe (Actions_full.rar - 500 Кб)

Распакуйте архив в папку и откройте actions1.lpi
Проект должен открыться (если установлен Лазарус).
Rambler's Top100
Hosted by uCoz