Связь и интернет Архив Программирование
   
Сделать стартовойСделать закладку            
   ПОИСК  
   
Главная / Pascal и Delphi / Иллюстрированный самоучитель по Delphi 6 / Часть III. Компоненты и программы / Использование компонентов общего назначения / Компоненты страницы Additional /
8  Perl
8  PHP
8  JavaScript
8  HTML
8  DHTML
8  XML
8  CSS
8  C / C++
8  Pascal и Delphi
8  Турбо Ассемблер
8  MySQL
8  CASE-технологии
8  Алгоритмы
8  Python
8  Обратная связь
8  Гостевая книга
Новости о мире


TActionManager - менеджер действий - Программирование от RIN.RU
TActionManager - менеджер действий

Вместе с тремя другими компонентами страницы Additional - TActionMainMenuBar, TActionToolBar И TCustomDIg (все перечисленные компоненты впервые введены в версии 6) позволяет создавать настраиваемый пользовательский интерфейс.


Таким интерфейсом обладает, например, среда Delphi: вы можете добавить/удалить любую инструментальную кнопку, запретить/разрешить выбор кнопок и опций меню и т. п.


Компонент TActionManager централизует однотипные действия, производимые схожими в функциональном отношении элементами интерфейса. Каждое такое действие компонент сохраняет в дисковом файле, что позволяет программе 'запоминать' последние настройки, произведенные пользователем. Таким образом, компонент значительно расширяет функциональность компонента TActionList (см. п. 18.1.16) и по существу делает его ненужным.


Компонент оперирует категориями однотипных действий (Edit, File, Format и т. п.) и может размещать категории в контейнере тасtionMainMenuBar (в виде опций меню), а входящие в них действия - в контейнере TActionToolBar (в виде инструментальных кнопок). В


Delphi предусмотрены 12 стандартных категорий, многие действия которых уже заранее предопределены. Например, в категорию File входит предопределенное действие TFileExit. Выбор этого действия в меню или инструментальной кнопкой приводит к завершению работы программы.


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


  • Поместите на пустую форму компоненты TActionManager, ТАсtionMainMenuBar, TActionToolBar И TCustomizeDlg. по умолча-нию контейнеры TActionMainMenuBar И TActionToolBar займут верхнюю часть формы, положение двух других компонентов не имеет значения.

  • Дважды щелкните по компоненту или вызовите его локальное меню и выберите опцию customize - на экране появится окно редактора компонента (рис. 18.20).

    Рис. 18.20. Редактор компонента TActionManager


  • Щелкните по окну правой кнопкой и выберите New Standard Action или просто нажмите Ctrl+Ins - на экране появится дополнительное окно с перечнем всех определенных в Delphi стандартных классов действий (рис. 18.21).

  • С помощью полосы скроллирования сместите список вверх и выберите в нем все классы, связанные с категорией File (для выбора нескольких классов одновременно щелкайте по каждому, удерживая нажатой клавишу Ctrl).

  • "Схватите" мышью категорию File и перетащите ее на полосу TActionMainMenuBar. Раскройте категорию и перетащите на полосу TActionToolBar опцию Exit.

  • Поместите в свойство/событие ActionManager компонента TCustomizeDIg ссылку на компонент ActionManagerl.

  • Напишите такой обработчик onciick для полосы TActionToolBar:

    procedure TFormI.ActionToolBarlClick(Sender: TObject);
    begin
    CustomizeDlgl.Show
    end;






Рис. 18.21. Окно со списком стандартных действий




Если вы запустите программу, то увидите пустое окно с меню File и инструментальной кнопкой Exit, причем опции меню (кроме недоступной опции Run) и инструментальная кнопка выполняют ожидаемые от них действия. Щелчок по инструментальной панели активизирует уже знакомое нам (рис. 18.20) окно редактора Atcion-Manageri, и вы можете изменять состав меню и инструментальной панели.


Свойства компонента:
property ActionBars: TActionBars;Содержит коллекцию всех инструментальных полос, определенных в приложении. Коллекция автоматически пополняется, когда на очередную полосу впервые кладется элемент меню (категория) или кнопка (действие)
property ActionCount: Integer; Содержит общее количество определенных в программе действий
property Actions[Index: Integer]: TContainedAction;Открывает индексированный доступ к конкретному действию
property FileName: TFileName; Имя файла, в котором компонент сохраняет текущую конфигурацию действий
property LinkedActionLists: TActionListCollection;Содержит коллекцию всех связанных с компонентом действий
property Images: TCustomImageList;Ссылка на связанное с компонентом хранилище изображений
property PrioritySchedule:TStringList;  Содержит для каждого действия номера сессий (запусков программы), когда связанная с действием кнопка или опция меню меняла свою видимость. Если какой-то элемент интерфейса должен постоянно присутствовать на экране, его строка PrioritySchedule должна хранить (-1)
type TActionListState = (asNormal, asSuspended, asSuspendedEnabled) ;Включает или отключает действия: asNormal - все действия включены; asSuspended - все действия выключены, их свойства
property State: TActionListState;Enabled не изменяются; asSuspendedEnabled - все действия выключены, их свойства Enabled получают значения True



Если свойство FileName не определено, компонент не сможет запоминать изменения, сделанные пользователем в интерфейсе программы, и представит элементы интерфейса так, как они были определены при создании программы. Для файла нет умалчиваемого расширения, но сама среда Delphi запоминает сделанные вами изменения в файле BIN\DELPHI32 . DMT.


Методы компонента:
procedure LoadFromFile(const FileName: String);Читает файл, указанный в параметре
File-Name и загружает информацию, необходимую для восстановления полос действий
procedure LoadFromStream(Stream: TStream);Загружает информацию, необходимую для восстановления полос действий, из потока Stream Восстанавливает вид полосы таким, как сохраняет ее свойство DefaultActionBar Уничтожает файл, указанный в свойстве FileName
procedure ResetActionBar(Index: Integer) ; procedure ResetUseageData;Сохраняет текущие настройки интерфейса в файле FileName
procedure SaveToFile(const FileName: String) ; procedure SaveToStream(Stream: TStream);Сохраняет текущие настройки интерфейса в потоке Stream
function ExecuteAction(Action: TBasicAction): Boolean; override;Создает событие OnExecute для выполнения действия Action



 8  Комментарии к статье  8 8  Обсудить в чате

 
  
  
    Copyright ©  RIN 2003 - 2004      * Обратная связь