Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

План заняття. 1. Огляд компонента список дій




1. Огляд компонента список дій

2. Характеристика властивостей компонента список дій

 

В данном занятии невозможно обойти вниманием такой важный компонент, как ActionList -2». С одной стороны, можно превос­ходно обойтись без использования данного компонента и при этом с успехом создавать полноценные действующие приложе­ния. Однако, с другой стороны, следует отметить, что применение компонента ActionList значительно облегчает работу программи­ста, позволяет застраховать себя от некоторых досадных ошибок в процессе создания приложения, а также делает сам код програм­мы более изящным, красивым и, главное, легко читаемым. Возни­кает вопрос, каково же назначение данного компонента.

С помощью компонента ActionList осуществляется синхрони­зация элементов управления. Чтобы пояснить, что это означает, достаточно будет внимательно взглянуть на саму среду разработ­ки Delphi. Легко заметить, что, например, операцию открытия файла можно осуществить с помощью пункта меню File \ Open, a также нажатием кнопки быстрого доступа - которая распо­ложена на панели инструментов. Другой пример: окно настройки панели инструментов можно вызвать, обратившись к пункту глав­ного меню View \ Toolbars | Customize или же выбрав пункт Cus­tomize в локальном меню главного окна среды разработки. Таким образом, возникает ситуация, когда одну и ту же операцию вы­полняют различные элементы управления. Чтобы не создавать для разных компонентов несколько различных обработчиков событий, которые должны будут выполнять одну и ту же функцию, следует использовать компонент ActionList, расположенный на странице Standard Палитры компонентов. При использовании данного ком­понента достаточно будет создать один обработчик событий, ко­торый будет реагировать на различные события нескольких управляющих элементов. Кроме этого, ActionList позволяет согла­совывать еще некоторые действия, например, синхронно управ­лять доступностью и видимостью логически взаимосвязанных компонентов в различные моменты времени.

Реализуется описанный механизм с помощью объектов дейст­вия Action (тип TAction), которые содержатся в компоненте ActionList. Объекты класса TAction создаются с помощью спе­циального редактора, который вызывается двойным щелчком мыши на компоненте либо обращением к пункту Action List Editor локального меню данного компонента. Общий вид этого редакто­ра показан на рис. 9.9.

 

Объекты действия, создаваемые программистом, по умолча­нию имеют имена Actionl, Action2 и т.д. Кроме этого, суще­ствует целый ряд стандартных объектов действия, таких, как, на­пример, открытие, закрытие и сохранение файла, размещение окон каскадом или мозаикой и т.д., которые выбираются из раз­личных категорий (список категорий находится в правой части окна редактора) и имеют соответствующие имена, например FileOpen (Открыть файла) или EditCut (вырезать). При ис­пользовании стандартных действий можно обойтись даже без соз­дания соответствующих обработчиков событий, так как необхо­димые действия будут выполняться автоматически.

В качестве основных свойств объекта действия Action мож­но выделить следующие: Caption, Imagelndex, Enabled, Visible, Checked, Hint и Shortcut, которые аналогичны та­ким же свойствам пункта меню TMenuItem. Значения этих свойств будут автоматически присваиваться соответствующим свойствам компонентов, с которыми связан объект действия. Это предоставляет определенные преимущества. Часто возникает необ­ходимость заблокировать или сделать невидимыми элементы управления, выполняющие некоторые действия. Например, должен быть невидим пункт меню Save {Сохранить), если в данный момент не открыт ни один из файлов, либо не должна быть доступна кноп­ка быстрого доступа Paste {Вставить), если предварительно текст не был скопирован в буфер. В том случае, если одно и то же дейст­вие выполняется различными элементами управления, возникает необходимость крайне внимательно отслеживать подобные момен­ты и соответствующим образом изменять значения свойств Enab­led или Visible для каждого из компонентов. Если же использу­ется объект действия, который связывает несколько таких компо­нентов, то достаточно будет только установить требуемое значение указанных свойств для самого объекта Action, а аналогичные свойства самих компонентов изменятся автоматически, одновре­менно делая данные компоненты видимыми или невидимыми, до­ступными или недоступными.

Несомненные удобства возникают также благодаря тому, что для группы связанных компонентов с помощью объекта действия можно задать «горячие» клавиши, устанавливая требуемое значе­ние свойству Shortcut, или определить одинаковую всплываю­щую подсказку, задавая свойство Hint. Подобные возможности позволяют избежать некоторых досадных оплошностей и неточ­ностей при разработке приложения.

Основными событиями для объекта действия являются OnExecute и OnUpdate.

Событие OnExecute возникает при щелчке мышью на одном из компонентов, связанных общим действием. Обработчик этого события должен реализовывать нужное действие.

Событие OnUpdate возникает, когда очередь сообщений для приложения пуста или когда обновляется содержимое списка дей­ствий.

Связь элементов управления с объектом действия осуществля­ется через свойство Action (тип TBasicAction). Если, напри­мер, необходимо связать кнопку Buttonl с объектом действия Actionl, то это делается следующим образом:

Buttonl.Action:= Actionl;

Безусловно, это свойство можно установить не только про­граммным образом, но и с помощью Инспектора объектов.

Теперь при нажатии кнопки Buttonl будет выполняться об­работчик события OnExecute объекта Actionl, а обработчик события OnClick самой кнопки не вызывается.

В Delphi 6 появилось еще несколько компонентов для работы с действиями, а в Delphi 7 состав этих компонентов был еще больше расширен. Теперь для более удобной и эффективной работы с объектами действия введены такие компоненты:

1) компонент управления действиями ActionManager (аналогичен ActionList), который используется для создания и управления объектами действия Action;

2) компонент меню ActionMainMenuBar позволяющий
конструировать меню на основе существующих объектов дейст­
вия;

3) компонент панели инструментов ActionToolBar, кото­рый дает возможность разрабатывать панель инструментов с ис­пользованием объектов действия;

4) компоненты цветовых схем XP Color Map, Standard Color Map и TwilightColorMap "', позволяющие задавать раз­личные общепринятые цветовые схемы для ActionMainMenuBar меню и панелей инструментов ActionToolBar.

Проиллюстрировать обращение с этими компонентами можно на небольшом примере.

Пример 9.4. Пусть необходимо создать приложение, которое позволяло бы с помощью меню или панели инструментов изме­нять цвет текста, выводимого на экран с помощью компонента Label.

Решение. Рассмотрим последовательность действий, которые необходимо сделать для решения данной задачи.

1.Создается новый проект.

2.На форму добавляется компонент Label, в свойство Cap­tion которого записывается произвольный текст.

3.На форму также помещаются следующие компоненты: ImageList, ActionManager, ActionMainMenuBar, ActionToolBar, XPColorMap.

4.В компонент ImageList добавляются четыре рисунка, кото­рые будут размещаться на кнопках панели инструментов, предна­значенных для выбора цвета текста и выхода из программы.

5.Двойным щелчком по компоненту ActionManager открыва­ется редактор списка действий. В этом редакторе последователь­ным нажатием кнопки New Action создается четыре объекта действия.

6.Свойству Images компонента присваивается значение ImageListl, а затем, путем установки требуемого значения свойству Imagelndex объектов Action, с каждым действием связывается соответствующий рисунок из списка графических образов. В результате этого окно редактора ActionManager при­нимает вид, показанный на рис. 9.10.

7.С помощью мыши все объекты действия перетаскиваются на панель инструментов ActionToolBar. Кнопки выбора цвета отде­ляются от кнопки выхода разделителем. Для этого из окна Ac­tionManager следует перетащить кнопку Drag to create Separators на панель инструментов, где она отобразится в виде вертикально­го разделителя.

8. Для того чтобы на кнопках панели инструментов отобража­
лись только рисунки без текста, необходимо для каждой кнопки
установить свойство ShowCaption в False, а свойство Show-
Glyph
True.

Кроме того, для каждого действия можно задать комбинацию "горячих" клавиш. Их отображением в панели инструментов управляет свойство ShowShortCut. В данном примере «горя­чие» клавиши использоваться не будут.

9. На следующем шаге создается меню, что включает в себя нижеприведенные этапы.

■ Вначале из окна ActionManager в меню перетаскивается действие Actionl. Затем для этого пункта меню очи­щается значение свойства Action, а свойству Cap­tion присваивается значение «Цвет». Здесь необхо­димо сделать небольшой комментарий. Дело в том, что согласно плану в данном примере пункт меню Цвет должен включать в себя три подпункта для изменения цвета текста. Этот пункт не должен быть связан ни с каким конкретным объектом действия, а должен только лишь позволять открыть соответствующее подменю. Вероятно, существует другой способ добавить в меню новый пункт, не связанный с действием, однако авторы не смогли найти более приемлемого решения, чем то, которое приводится здесь и заключается в том, чтобы перетащить в меню объект действия, а затем убрать из свойства Action данного пункта меню ссылку на со­ответствующее действие. Результатом выполнения та­ких действий становится появление в меню Action-MainMenuBar пункта, не связанного с объектом дейст­вия.

■ Для данного пункта меню в Инспекторе объектов выбира­ется пункт Items, после чего нажатием кнопки, вызы­вается редактор Editing.ActionManager.Items, в котором добавляется три новых пункта меню.

■ Каждый из созданных пунктов связывается с соответст­вующим действием Actionl, Action2 и Action3 пу­тем задания свойства Action. Свойствам Caption дан­ных трех пунктов меню, соответственно, присваиваются значения «Зеленый», «Красный» и «Черный». Свой­ства ShowCaption и ShowGlyph каждого из этих пунк­тов должны иметь значение True (т.е. будут отображать­ся и рисунки, и текст заголовков).

Из окна редактора ActionManager в меню Action-MainMenuBar перетаскивается объект действия Action4. Щелчком мыши в меню выбирается новый пункт, и для него задаются необходимые свойства. Свойство Caption получает значение «Выход», свойство ShowCaption ус­танавливается в True, а свойству ShowGlyph присваи­вается False. На этом разработка меню завершается. В итоге меню принимает такой вид, как показано на рис. 9.11.

 

 

10. Свойству ColorMap компонентов ActionMainMenuBar и ActionToolBar устанавливается ссылка на объект цветовой схемы (задается значение XPColorMapl). Таким образом, для меню и панели инструментов устанавливается цветовая схема ХР, которая применяется в Microsoft Office XP, а также в самой среде разра­ботки Delphi 7. Подобного результата можно добиться и без непо­средственного использования компонента цветовой схемы, если свойству Style компонента ActionManager задать значение ХР Style.

11. Для каждого объекта действия двойным щелчком мыши на его названии в редакторе ActionManager создается обработчик события OnExecute, и каждый из них программируется соответ­ствующим образом. Итоговый программный код приложения приведен ниже.

Пример работы приложения показан на рис. 9.12.

 

 

Контрольні питання

1. Навести огляд компонента список дій

2. Надати характеристику властивостей компонента список дій

 

 


АУДИТОРНЕ ЗАНЯТТЯ

ЗМІСТОВИЙ МОДУЛЬ 1: ОСНОВНІ ПОНЯТТЯ ТА ОЗНАЧЕННЯ. ЕЛЕМЕНТИ МОВИ. КЕРУВАННЯ ПРОЦЕСОМ ОБЧИСЛЕНЬ

ТЕМА 1.5: ОСНОВИ СТВОРЕННЯ ПРИКЛАДНИХ ЗАСТОСУВАНЬ

Лекція №13 – Компіляція прикладних застосувань




Поделиться с друзьями:


Дата добавления: 2014-12-25; Просмотров: 513; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.012 сек.