Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
РАБ_C++BUILDER.doc
Скачиваний:
100
Добавлен:
02.06.2015
Размер:
7.07 Mб
Скачать

Контрольные вопросы

  1. Перечислите компоненты, реализующие стандартные диалоги и объясните их назначение.

  2. Приведите и объясните вид стандартного обращения к диалогу.

  3. Расскажите о свойствах компонентов OpenDialog и SaveDialogFilter, FilterIndex, InitialDir, DefaultExt, Title.

  4. Расскажите о свойстве Options компонентов OpenDialog и SaveDialog.

  5. Расскажите о событиях OnCanClose, OnFolderChange, OnSelectionChange, OnTipeChange.

  6. Приведите пример обработчика команды Открыть.

  7. Приведите пример обработчика команды Сохранить как.

  8. Приведите пример обработчика команды Сохранить.

  9. Расскажите о диалогах открытия и закрытия графических файлов.

  10. Перечислите компоненты работы с файловой системой и объясните их назначение.

  11. Расскажите об использовании компонентов работы с файловой системой.

  12. Как компоненты работы с файловой системой связать друг с другом?

  13. Расскажите о свойствах и применении диалога выбора шрифта.

  14. Приведите примеры применения диалога выбора шрифта (в Memo, в RichEdit, на форме).

  15. Расскажите о диалогах выбора цвета – ColorDialog, ColorBox.

  16. Как задавать основные и дополнительные цвета?

  17. Какие свойства имеет компонент ColorDialog?

  18. Какие свойства имеет компонент ColorBox?

Библиографический список

  1. Архангельский АЯ Программирование в C++Builder 6. – М: ЗАО «Издательство БИНОМ», 2003 – 1152 с – С 237–256, 1062–1064, 1136.

  2. Шамис В.А. Borland C++ Builder 6. Для профессионалов / В.А. Шамис.− СПб.: Питер, 2003.− 798 с.– С. 434–437.

  3. Архангельский АЯ Компоненты C++Builder. Справочное и методическое пособие. – М: ООО «Бином-Пресс», 2013 – 960 с: ил.

Занятие 9 Технология разработки приложений. Диспетчеризация действий

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

Действие (Action) - реализация некоторого поведения, являющегося реакцией на поступок пользователя, такой, как щелчок на кнопке или на разделе меню – инициаторе действия или интерфейсном компоненте действия. Примерами действий являются открытие файла и его загрузка в какой-то приемник, сохранение информации в файле на диске, установка атрибутов шрифта и выравнивание текстов в окнах редактирования, поиск и замена фрагментов текста, навигация по набору данных, выполнение какогог-то внешнего приложения, вызов справки и многое другое.

Перечисленные примеры относятся к стандартным действиям. В действительности таких действий много больше. Все стандартные действия реализованы в C++Builder классами, наследующими базовому классу действий TAction. Обработчики подобных действий в ряде случаев писать вообще не надо, так как они реализованы в соответствующих классах.

Помимо стандартных действий в реальных приложениях имеются и нестандартные, связанные с какими-то расчетами, обработкой данных и т.п. Объекты таких действий пользователь должен создавать сам и сам должен писать для них обработчики, реализующие данные действия.

При программировании список действий реализуется специальными компонентами, обеспечивающими диспетчеризацию действий, – ActionList и ActionManager. Редактор диспетчера действий ActionList позволяет сформировать список действий, написать обработчики, выполняющие задуманные действия, задать основные свойства будущих интерфейсных элементов – пиктограммы, надписи, быстрые кнопки, тексты подсказок и т.п. Диспетчер действий ActionManager намного мощнее диспетчера ActionList.

После того, как список действий создан, надо сформировать полосы действий. Это полосы, на которых располагаются интерфейсные компоненты действий – полоса главного меню и инструментальные панели. При использовании диспетчера ActionList полосы действий добавляют на форму в виде отдельных компонентов, создают на них инициаторы действий (разделы меню, быстрые кнопки), а затем связывают инициаторы с соответствующими действиями из списка диспетчера ActionList. При таком связывании свойства, заложенные в действия, автоматически передаются интерфейсным компонентам. В диспетчере ActionManager создание полос действий упрощается. Они создаются и формируются непосредственно из редактора ActionManager простым перетаскиванием мышью.

Интерфейсные компоненты действий обычно должны содержать поясняющие их изображения. Изображения собираются в списке изображений – компоненте ImageList. Для нестандартных действий изображения загружаются в ImageList пользователем. А изображения для стандартных действий загружаются в ImageList автоматически по мере формирования списка в диспетчере действий.

Таким образом, последовательность формирования списка действий и проектирования меню и инструментальных панелей сводится к следующим шагам.

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

  2. Для тех нестандартных действий, которые должны быть доступны из быстрых кнопок инструментальной панели, готовится список пиктограмм на кнопках в компоненте ImageList.

  3. На главную форму переносится компонент диспетчеризации действий: ActionList или ActionManager. Компонент связывается с ImageList. Формируется список стандартных и нестандартных действий.

  4. Каждому действию задается набор характеристик: Name (имя), Caption (надпись, в которой выделяется символ быстрого доступа), ShortCut («горячие» клавиши), ImageIndex (номер изображения в ImageList), Hint (тексты подсказок), HelpContext или HelpKeyWord (ссылка на тему справки) и др. Для нестандартных действий все эти характеристики записываются пользователем. Для стандартных действий они заносятся автоматически. Нужно только надписи и подсказки перевести на русский язык и, может быть, исправить ссылки на неприемлемые стандартные изображения и комбинации «горячих» клавиш. Если в приложении предусматривается контекстная справка, то надо задать ссылки на соответствующие темы. Естественно, в начале проектирования справки еще нет. Так что свойства HelpContext и HelpKeyWord задают позднее.

  5. Записываются обработчики событий выполнения для всех нестандартных действий. Стандартные действия обрабатываются автоматически и для многих из них достаточно задать некоторые свойства обработки. Но иногда надо писать обработчики и для стандартных действий.

Дальнейшие шаги зависят от используемого диспетчера. Для диспетчера ActionList далее надо сделать следующее.

  1. На форму переносится компонент MainMenu – главное меню, связывается с ImageList, в компоненте формируется меню и в его разделах даются ссылки на действия, описанные в ActionList.

  2. На форме создается инструментальная панель (обычно компонент ToolBar). Панель связывается с ImageList, а в ее кнопках даются ссылки на действия, описанные в ActionList.

В случае использования диспетчера ActionManager следующие шаги таковы.

  1. На форму переносится компонент ActionMainMenuBar – полоса главного меню. Она связывается с диспетчером ActionManager. Затем из редактора ActionManager перетаскиваются мышью на полосу главного меню категории разделов, которые должны входить в меню как головные разделы или отдельные действия.

  2. В редакторе ActionManager создается новая инструментальная панель, или несколько панелей. На них перетаскиваются мышью необходимые действия.