Диспетчеризация действий на основе компонента ActionList
1.Перенесите на форму со страницы Стандарт компонентActionList1. Перенесите также со страницы Win32 компонент ImageList1 и сошлитесь на него в свойстве Images компонентаActionList1.
2.Загрузите в компонент ImageList1 четыре изображения. Они загружаются в процессе проектирования с помощью редактора списков изображений. Окно редактора вызывается двойным щелчком на компоненте ImageList1 или щелчком правой кнопки мыши и выбором команды контекстного меню Редактор ImageList. В окне редактора Образы можно добавить в списки изображение (кнопка Добавить), удалить изображение из списка кнопкой Удалить, очистить весь список кнопкой Очистить. При добавлении изображения в список, которое начинается с нажатия кнопки Добавить, открывается окно открытия файлов изображений, в котором можно выбрать нужный файл. Множество изображений, размещаемых обычно на кнопках, содержится в папке …\Program Files\Common Files\Borland Shared\Images\Buttons. Следует помнить, что размер всех изображений в списке должен быть одинаковым. Как правило, это размер, используемый для пиктограмм в меню, списках, кнопках. При добавлении в список изображений для кнопок надо иметь в виду, что они часто содержат не одно, а два и более изображений. В этих случаях после выбора имени файла изображений при щелчке на кнопке Открыть задается вопрос: “Bitmap dimensions for … are greater then imagelist dimensions. Separate into … separate bitmaps?” (“Размерность изображения … больше размерности списка. Разделить на … отдельные изображения?”). Если ответить отрицательно, то все изображения уменьшатся в горизонтальном размере и лягут как одно изображение. Использовать его в дальнейшем будет невозможно. Поэтому на заданный вопрос надо ответить положительно. Тогда загружаемая битовая матрица автоматически разделится на отдельные изображения, а затем те из них, которые не нужны, удаляют. Каждое загруженное в список изображение получает индекс. Именно на эти индексы впоследствии ссылаются в соответствующих свойствах разделов меню, списков, кнопок и т.д., когда надо загрузить в них то или иное изображение. Чтобы изменить последовательность изображений в списке, перетаскивают изображение мышью на новое место. Итак, изображения добавляют из файлов clear, fontbold, tools, dooropen. Ненужные изображения в окне Образы выделяют щелчком мыши и удаляют, а когда все четыре изображения с соответствующими номерами будут находиться в окне, их загружают нажатием клавиши Ок.
3.Сделайте на компоненте ActionList1двойной щелчок, чтобы попасть в Редактор Действий (окно Редактирование Form1->ActionList1), позволяющий вводить и упорядочивать действия. Колонка Категории: не имеет отношения к проектированию данного приложения. Щелчок правой кнопкой мыши или щелчок на маленькой кнопке со стрелкой вниз правее первой быстрой кнопки окна редактирования позволяет выбрать одну из команд: Новое действие или Новое стандартное действие. Первая из них относится к вводу нового действия любого типа. Будем пользоваться только командой Новое действие. Выберите эту команду четыре раза. В колонке Действия: появятся имена действий по умолчанию: Action1, Action2, Action3, Action4.
4.Выделите Action1. В Инспекторе Объектов указанным ниже свойствам объекта действия Action1присвойте следующие значения: Caption –Новое, Hint –очистка, ImageIndex –0, Name –ANew, ShortCut –Ctrl+A. Для Action2: Caption –Преобразование, Hint –преобразование, ImageIndex –1, Name –AMod, ShortCut –Ctrl+B. Для Action3: Caption –Преобразование и вычисление, Hint –преобразование и вычисление, ImageIndex –2, Name –ARun, ShortCut –Ctrl+C. И для Action4: Caption –Выход, Hint –выход, ImageIndex –3, Name –AExit, ShortCut –Ctrl+D.
5.На странице событий Инспектора Объектов для каждого действия определено три события: OnExecute, OnUpdateи OnHint. Событие OnExecuteвозникает в момент, когда пользователь инициализировал действие, например, щелкнув на компоненте (разделе меню, кнопке), связанном с данным действием. Обработчик этого события должен содержать процедуру, реализующую данное действие. Событие OnUpdate периодически возникает в промежутках между действиями. Возникновение этих событий прекращается только во время реализации события или во время, когда пользователь ничего не делает и компьютер находится в состоянии ожидания действий. Обработчик события OnUpdate может содержать какие-то настройки, подготовку ожидаемых дальнейших действий или выполнение каких-то фоновых операций. Событие OnHint возникает в момент, когда на экране отображается ярлычок подсказки в результате того, что пользователь задержал курсор мыши над компонентом, инициализирующим событие. Наличие в объекте действия событий OnUpdate и OnHint расширяет возможности по проектированию приложения. В выпадающем списке событияOnExecute содержатся значения FormCreate, N2Click, N3Click, N4Click, N6Click, т.е. имена написанных обработчиков событий – создание формы и щелчки на разделах меню Новое, Преобразование, Преобразование и вычисление, Выход. Для действия Anew примите N2Click, AMod - N3Click, ARun - N4Click, AExit - N6Click.
6.В свойствоImages компонента MainMenu1внесите ImageList1. Двойным щелчком на компоненте MainMenu1перейдите в окно Form1->MainMenu1 Конструктора Меню. В свойство Action разделов Новое, Преобразование, Преобразование и вычисление, Выход внесите соответственно значения Anew, AMod, ARun, AExit. Как показывает Инспектор Объектов, при этом в разделы меню переносятся свойства соответствующего объекта действия.
7.Со страницы Win32 перенесите на форму инструментальную панель - компонентToolBar. По умолчанию он расположится вверху, поскольку его свойство Align по умолчанию равно alTop. Установите Align=alNone, чтобы можно было придать любую форму и расположить ее в любом месте. Полезно также воспользоваться свойством Constraints.
8.В свойство Hint впишите инструментальная панель, в свойство Imagesвнесите ImageList1, в ShowHint – true. Щелкните правой кнопкой мыши на компоненте ToolBar1 и из всплывшего меню выберите команду Новая кнопка. В свойство Actionкнопки внесите ANew, а в свойство ShowHint – true. Повторите эту команду еще для трех кнопок, внося в свойство Actionсоответственно AMod, ARun, AExit, в свойство ShowHint – true. Отметим, что свойства и обработчики событий объекта действия будут перенесены на соответствующие кнопки инструментальной панели.
Дата добавления: 2020-10-14; просмотров: 415;