Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
delphi.pdf
Скачиваний:
191
Добавлен:
24.02.2016
Размер:
6.84 Mб
Скачать

Итак, приложение для просмотра графических файлов обладает полным набором функциональных возможностей. Выполните его компиляцию и посмотрите, как исчезают и появляются панель инструментов и строка состояния при выборе в меню View соответствующих команд.

8.6. Список команд

Часто одна и та же команда дублируется в разных местах пользовательского интерфейса: и в главном меню, и в контекстном меню, и на панели инструментов. Например, команды управления масштабом рисунка присутствуют во всех перечисленных местах программы Picture Viewer. Это очень удобно для пользователя, но добавляет работы программисту, поскольку изменение команды в одном месте требует таких же изменений во всех других местах. На помощь приходит компонент ActionList, который централизованно управляет всеми командами пользовательского интерфейса. Рассмотрим его использование.

8.6.1. Создание списка команд

Отыщите в палитре компонентов на вкладке Standart компонент ActionList и добавьте его в форму (рисунок 8.75).

Рисунок 8.75. Компонент ActionList

Дайте компоненту имя ActionList (рисунок 8.76).

407

Рисунок 8.76. Компонент ActionList на форме

Ознакомьтесь со свойствами компонента ActionList в таблице 8.17.

Свойство

Images

State

Описание

Список значков, отображаемых в компонентах, использующих команды. Свойство Images используется совместно со свойством ImageIndex компонентов Action.

Позволяет временно запретить выполнение всех команд списка. Возможные значения:

asNormal — команды работают в обычном режиме и доступность каждой команды определяется значением свойства Enabled в соответствующем компоненте Action; asSuspended — все команды недоступны, но при этом не затрагиваются свойства

Enabled в компонентах Action; asSuspendedEnabled — все команды недоступны, но имеют обычный вид благодаря тому, что свойство Enabled каждого компонента Action устанавливается в значение

True.

OnChange

OnExecute

OnStateChange

OnUpdate

Происходит при модификации команд в списке. Однако не происходит при создании и уничтожении команд.

Происходит при выполнении команды.

Происходит при изменении свойства State. Следует учитывать, что из-за ошибки в библиотеке VCL событие не происходит при переводе свойства State в значение asSuspended.

Происходит при выполнении команды и периодически во время простоя программы. Позволяет отслеживать и изменять состояния команд.

Таблица 8.17. Важнейшие свойства и события компонента ActionList

Шаг 72. Создание списка команд начнем с команды Open. В контекстном меню компонента ActionList выберите команду Action List Editor…

(рисунок 8.77).

408

Рисунок 8.77. Вызов списка команд из контекстного меню компонента ActionList

Перед вами откроется окно команд (рисунок 8.78).

Рисунок 8.78. Окно команд компонента ActionList

409

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

Шаг 73. Щелчком на первой кнопке добавьте в список новую команду. Свойства команды немедленно появятся в окне свойств.

8.6.2. Команды

Когда вы создаете очередную команду в компоненте ActionList, среда Delphi добавляет в описание формы компонент Action. Компонент Action не существует отдельно от компонента ActionList и поэтому отсутствует в палитре компонентов. В остальном это обычный компонент, его важнейшие свойства приведены в таблице 8.18.

Свойство

AutoCheck

Описание

Если равно значению True, то выполнение команды (вызов метода Execute) автоматически приводит к изменению значения свойства Checked на противоположное. Если равно значению False, то изменением состояния свойства Checked управляет сам программист.

Caption

Заголовок команды.

Category

Категория команды.

Checked

Если равно значению True, то команда считается выбранной. В этом случае

связанные с командой пунткы меню содержат метку, а кнопки имеют

 

вдавленный вид.

Enabled

GroupIndex

ImageIndex

Определяет, доступна ли команда пользователю.

Команды с одинаковым положительным значением GroupIndex согласовано переключают свойство Checked — установка у одной команды свойства Checked в значение True приводит к устновке его в значение False в других командах.

Номер значка в списке Images компонента ActionList. Значок отображается рядом с текстом пункта меню (см. параграф 8.1.12). Отрицательное значение свойства ImageIndex говорит о том, что для пункта меню значок не задан. Свойство ImageIndex имеет приоритет над свойством Bitmap.

SecondaryShortCuts

Дополнительные комбинации клавиш.

ShortCut

Комбинация клавиш для выполнения команды.

Visible

Определяет, видна ли пользователю команда.

OnExecute

Происходит при выполнении команды.

OnHint

Происходит в момент появления всплывающей подсказки.

 

Происходит при выполнении команды и периодически во время простоя

OnUpdate

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

 

 

Таблица 8.18. Важнейшие свойства и события компонента Action

410

Шаг 74. Перейдем к настройке команды, созданной на предыдущем шаге. Дайте команде имя OpenAction, в свойстве Caption впишите текст Open... и в свойстве ShortCut выберите значение Ctrl+O (рисунок 8.79).

Рисунок 8.79. Для команды Open задана комбинация клавиш Ctrl+O

Команда может иметь значок. Он определяется значением свойства ImageIndex (номер значка в списке Images компонента ActionList). Прежде чем выбрать значение для свойства ImageIndex, нужно указать список значков компоненту ActionList.

Шаг 75. Выделите на форме компонент ActionList и перейдите к окну свойств. Выберите в свойстве

Images значение ImageList (рисунок 8.80).

Рисунок 8.80. Для компонента ActionList задается компонент ImageList со списком значков

411

Шаг 76. А теперь установим компоненту OpenAction соответствующий значок. Перейдите к окну команд и выделите команду OpenAction. Затем в окне свойств отыщите свойство ImageIndex и выберите значок с номером 0 (рисунок 8.81).

Рисунок 8.81. Для команды Open задан значок с индексом 0

Шаг 77. С командой OpenAction мы разобрались, теперь самостоятельно создайте команды SaveAsAction, CloseAction, ExitAction, ToolBarAction, StatusBarAction, HalfSizeAction, NormalSizeAction, DoubleSizeAction

(рисунок 8.82) с соответствующими заголовками (свойство Caption).

Рисунок 8.82. Полный список команд для программы

412

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]