программирование, создание программ, учебник Delphi, учебник по программированию, бейсек, делфи, си, паскаль
 
 
 

 

Разработка пользовательского интерфейса.

Интерфейс — это внешняя оболочка приложения вместе с программами управления доступом и другими скрытыми от пользователя механизмами управления, дающая возможность работать с документами, данными и другой информацией, хранящейся в компьютере или за его пределами. Главная цель любого приложения — обеспечить максимальное удобство и эффективность работы с информацией: документами, базами данных, графикой или изображениями. Поэтому интерфейс является, пожалуй, самой важной частью любого приложения.
Хорошо разработанный интерфейс гарантирует удобство работы с приложением и, в конечном итоге, его коммерческий успех. В данной главе описаны виды интерфейсов и процесс создания интерфейса со всеми его основными элементами управления: меню, контекстным меню, панелями инструментов, строкой состояния.
Проектирование интерфейса — процесс циклический. На этом этапе разработки приложения желательно чаще общаться с пользователями и заказчиками приложения для выработки наиболее приемлемых по эффективности. удобству и внешнему виду интерфейсных решений.
Выбор того или иного типа интерфейса зависит от сложности разрабатываемого приложения, поскольку каждый из них имеет некоторые недостатки и ограничения и предназначен для решения определенных задач. При этом необходимо ответить на ряд вопросов: какое количество типов документов обрабатывается в приложении, имеют ли данные древовидную иерархию, потребуется ли панель инструментов, какое количество документов обраба-тывается за некоторый интервал времени (например, за день) и т. д. Toлько после этого можно выбирать конкретный тип интерфейса.
Рассмотрим возможные типы интерфейсов и их характерные особенности, влияющие на выбор интерфейсного решения приложения.
Общие советы по разработке интерфейса
При разработке интерфейса необходимо руководствоваться следующими принципами:

  • Стандартизация. Рекомендуется использовать стандартные, проверенные многими программистами и пользователями интерфейсные решения. Для Visual Basic это, разумеется, решения Microsoft. Причем в качестве стандарта (образца для "подражания") может служить любое из приложений — Word, Excel или другие приложения Microsoft. Под решениями подразумеваются дизайн форм, распределение элементов управления в формах, их взаимное расположение, значки на кнопках управления, названия команд меню.
  • Удобство и простота работы. Интерфейс должен быть интуитивно понятным. Желательно, чтобы все действия легко запоминались и не требовали утомительных процедур: выполнения дополнительных команд, лишних нажатий на кнопки, вызова промежуточных диалоговых окон.
  • Внешний дизайн. Нельзя, чтобы интерфейс утомлял зрение. Он должен быть рассчитан на длительную работу пользователя с приложением в течение дня.
  • Неперегруженность форм. Формы должны быть оптимально загружены элементами управления. При необходимости можно использовать вкладки или дополнительные страницы форм.
  • Группировка. Элементы управления в форме необходимо группировать по смыслу, используя элементы группировки: рамки, фреймы.
  • Разреженность объектов форм. Элементы управления следует располагать на некотором расстоянии, а не лепить друг на друга; для выделения элементов управления можно организовать пустые пространства в форме.

Здесь перечислены основные принципы, которые следует учитывать при проектировании интерфейса приложения, но они не являются догмой. Со временем в процессе работы с пользователями и накоплением практического опыта будут вырабатываться и свои оптимальные принципы построения интерфейса.
Типы интерфейсов
В настоящее время для приложений, разрабатываемых в среде Windows при помощи Visual Basic б, используется три типа интерфейса: однодокументный SDl (Single-Document Interface), многодокументный MDI (Multiple-Document Interface) и интерфейс типа проводник (Explorer).
Замечание
Под документом в этом случае нужно понимать форму, предназначенную для работы с данными, а не с конкретным документом.
В этой главе основное внимание будет уделено первым двум типам интерфейса, поскольку они наиболее часто применяются для разработки пользовательских приложений. Интерфейс типа проводника используется в приложениях не так часто, поэтому мы дадим только его краткое описание.
Однодокументный интерфейс — это тип интерфейса, в котором предоставляется возможность работы только с одним документом в одном окне. Примером может служить редактор Microsoft WordPad. Для работы с несколькими документами в таком интерфейсе необходимо многократно запускать приложение. Для каждого типа данных и документов требуется своя форма и, соответственно, свое приложение с интерфейсом типа SDI. В принципе, это тоже один из возможных вариантов, но он подходит только для работы с небольшим количеством форм документов. При загрузке большого количества SDI-приложений начинает переполняться оперативная память компьютера и приложения работают очень медленно. Каждый раз при запуске SDI-приложения в память загружаются одни и те же данные (меню, панель и элементы управления), выполняющие одинаковые действия, что приводит к неэффективной и медленной работе запускаемых приложений.
Однако полностью отказываться от интерфейса типа SDI не стоит, поскольку он вполне годится для работы с одним или двумя документами (например, для копирования из одного документа в другой). Есть и положительные стороны приложений такого типа интерфейса — они занимают меньше места на диске и в оперативной памяти, да и на их разработку уходит гораздо меньше времени, что также немаловажно.
Интерфейс типа MDI дает возможность работать в одном приложении с любым количеством открытых окон.
 
 
SDI-интерфейс
Интерфейс типа SDI показан на  1. Он состоит из следующих элементов:

  • главного меню;
  • панели инструментов с элементами управления;
  • окна приложения для размещения элементов управления данными (в таком случае это окно с заголовком "Документ WordPad");
  • элементов управления для работы с данными. На  1 это одно большое поле для работы с текстом;
  • строки состояния. Этот тип интерфейса подходит для приложений, созданных для работы с документом одного типа с небольшим количеством полей (иначе форма перегружается элементами управления и интерфейс становится сложным и неудобным).

 
MDI-интерфейс
Главная особенность MDI заключается в том, что для этого типа интерфейса можно многократно открывать форму одного вида документа для нескольких разных по содержанию документов. Примером интерфейса типа MDI может служить программа Microsoft Word ( 2).
Для интерфейса такого типа характерно наличие одного главного окна (MDI-окно), которое обычно именуется родительским окном (на  2 это окно с заголовком Microsoft Word), и необходимого для работы количества подчиненных (вложенных) окон, называемых дочерними (на  2 это окна с заголовками Документ1, Документ2, Документ4). Количество открытых дочерних окон ограничено лишь возможностями компьютера.
Подчеркнем, что родительское окно для MDI-интерфейса может быть только одно, при этом оно является контейнером для всех дочерних окон. Это означает, что при минимизации родительского окна вместе с ним минимизируются и все дочерние окна.
В свою очередь, дочерние окна могут находиться только внутри родительского, то есть при раскрытии на весь экран дочерние окна раскрываются полностью только в границах родительского окна и не могут быть вынесены или перемещены за эти границы.
В состав интерфейса MDI входят следующие элементы:

  • главное меню;
  • панель инструментов с элементами управления;
  • главное окно приложения (MDI-окно);
  • дочерние окна;
  • элементы управления для работы с данными, расположенные в дочерних окнах (на  2 это одно большое поле для работы с текстом своего документа в каждом из окон);
  • строка состояния.

Рассмотрим подробнее элементы интерфейса и технологию их создания при помощи инструментальных средств Visual Basic.
Родительское окно MDI-интерфейса
Для добавления родительской формы в проект можно выполнить одно из следующих действий:

  • в меню Project (Проект) выбрать команду Add MDI Form (Добавить MDI-форму);
  • в окне проводника нажать правую кнопку мыши и выбрать из контекстного меню команду Add, а затем значение MDI Form.

Замечание
При наличии MDI-формы в проекте эта команда недоступна.
MDI-форма показана на  3.
Родительское и дочернее окна имеют набор основных свойств, описанных в табл. 7.1. Доступ к этим свойствам можно получить при помощи окна Properties (Свойства).
Таблица 7.1. Набор основных свойств родительских и дочерних окон

Свойство BorderStyle определяет тип обрамления окна и может принимать значения, приведенные в табл. 7.2.
Таблица 7.2. Тип обрамления окна. задаваемый свойством BorderStyle
 
Свойство ScaleMode задает единицу измерения свойств width, Height, Left и Top и может принимать значения, описанные в табл. 7.3.
Таблица 7.3. Значения, принимаемые свойством ScaieMode
 
Свойства окон можно изменять в режиме проектирования. Кроме того, Visual Basic дает возможность изменять свойства окон из программы в ре-жиме выполнения.
Здесь следует заметить, что в отличие от дочернего, для родительского окна доступна только часть из перечисленных свойств. Например, недоступны свойства MaxButton, MinButton или controiBox, управляющие кнопками в заголовке окна.
В свою очередь, существуют свойства, характерные только для родительского окна. Это свойства AutoShowChildren И ScrollBars. Если свойство AutoShowChildren имеет значение True (это значение используется по умол чанию), то при загрузке родительского окна автоматически загружается дочернее окно. Свойство ScrollBars определяет наличие полос прокрутки в родительском окне для дочерних окон, выходящих за границы видимости. По умолчанию это свойство имеет значение True, разрешающее отображение полосы прокрутки.
В табл. 7.4 приведены основные события, которые чаще всего используются для форм. В процессе программирования вы познакомитесь с ними более подробно.
Таблица 7.4. События, используемые формами

При проектировании можно просмотреть список событий, связанных с формой, в окне редактора кода формы. Для этого необходимо выполнить команду Code (Код) меню View (Вид) или переместить указатель в поле конструирования формы и дважды щелкнуть кнопкой мыши. В верхней части окна редактора кода расположены два списка. Выберите из левого списка объектов текущую форму. При этом в правом списке будут расположены все события формы.
При программировании событий Visual Basic 6 сразу же при выборе события предоставляет готовую конструкцию (шаблон кода) для программирования действий по событию. Имя процедуры обработки события всегда связано с его именем. Например, для обработки события Load автоматически предоставляется такой шаблон:
Private Sub Form_Load()
... код процедуры обработки события
End Sub
 
 
Дочернее окно MDI-интерфейса
Дочернее окно ( 4) обладает всеми описанными в табл. 7.1 свойствами окон. Практически все они доступны при проектировании.
Основные особенности дочерних окон:

  • дочерняя форма всегда располагается в границах родительской;
  • дочернюю форму нельзя переместить за границы родительской формы;
  • дочернее окно сворачивается только внутри родительского;
  • при разворачивании дочернее окно занимает все внутреннее пространство родительского окна.

Расположением дочерних окон в родительском окне можно управлять при помощи метода Arrange родительского окна и набора переменных, которые задают способы размещения дочерних окон (табл. 7.5).
Таблица 7.5. Значения констант для метода Arrange

Для добавления дочерней формы в проект необходимо выполнить команду Add Form (Добавить форму) меню Project (Проект). В качестве дочерней формы можно использовать автоматически создаваемую при выборе нового проекта форму. При этом свойство MDIchild следует установить в значение True.
Для исследования характеристик и взаимодействия родительского и дочернего окон создадим небольшое приложение. Для этого выполните следующие действия:
1. Создайте новый проект. Для этого в меню File (Файл) выберите команду New Project (Создать проект) и дважды щелкните на значке Standard ЕХЕ.
2. Откройте окно свойств проекта, выбрав команду ProjectName Properties в меню Project.
3. В поле Project Name введите имя проекта MyMDIApp и нажмите кнопку ОК для закрытия диалогового окна.
4. Чтобы автоматически использовать созданную форму проекта в качестве дочерней, откройте окно свойств, вызвав его командой Properties Window (Окно свойств) в меню View (Вид), и установите для свойства MDichild значение True.
5. Используя свойство Name, введите имя формы frmChildMDI.
6. В поле свойства caption введите заголовок окна Дочернее окно MDI.
7. Добавьте в проект MDI-форму, выполнив команду Add MDI Form (Добавить MDI-форму) меню Project (Проект).
8. Воспользовавшись свойством Name, введите имя формы mdiParentMDI.
9. Используя свойство Caption, введите заголовок окна Родительское окно MDI
10. Для демонстрации некоторых действий нам понадобится простое меню. Создадим его по шагам (редактор меню описан в разделе "Меню" данной главы).

  • Выберите родительское окно.
  • Вызовите редактор меню командой Menu Editor (Редактор меню) из меню Tools (Сервис).
  • В поле Name (Имя) введите имя тли file.
  • В поле Caption (Заголовок) введите заголовок меню Файл.
  • Теперь создайте пункт этого меню. Нажмите кнопку Next (Следующий) и кнопку с направленной вправо стрелкой. В поле Name введите имя меню mnufileNewForm, а в поле Caption его заголовок Новая форма.

Небольшое приложение готово к работе. Для проверки запустите его при помощи команды Start (Запустить) меню Run (Запуск). Остановка приложения выполняется командой End (Остановить) того же меню.
11. Запрограммируем вызов нескольких дочерних форм. Для этого выделите родительскую форму в конструкторе форм и дважды щелкните левой кнопкой мыши для вызова редактора кода родительского окна.
12. В списке объектов (левый раскрывающийся список) выберите пункт меню mnuFileNewForm, в левом списке событий выберите событие click и напишите для него следующий код :
Private Sub nmuFileNewForm Click()
Dim frmNewForm As New frmChildMDI
frmNewForm.Show
End Sub
В тексте кода мы объявили объектную переменную frmNewForm для ссылки на вновь созданный экземпляр окна. Затем с помощью метода show новый экземпляр визуализируется в родительском окне. Для вычисления номера дочернего окна используется переменная frmCount. Этот код выполняется при выборе команды Новая форма из меню Файл родительского окна.
13. При помощи этого простого приложения можно проверить все основные характеристики родительского и дочернего MDI-окон. Для проверки возможностей упорядочения дочерних окон в родительском окне (свойство Arrange) добавим в меню пункт Окно и команду меню, выполняющую упорядочение. Для этого откройте редактор меню и добавьте пункт Окно и необходимую команду. Присвойте пункту меню имя mnuwindow, а команде, предназначенной для расположения окон каскадом, имя mnuwindowTileVertical. Программный код должен выглядеть следующим образом:
Private Sub mnuwindowTileVertical Click()
mdiParentMDI.Arrange vbTileVertical
End Sub
Ниже приведен полный текст кода созданного нами простого приложения:
Dim frmCount As Integer
Private Sub MDIForm_Load()
frmChildMDI.Caption = "Дочерняя форма 1"
frmCount = 1
End Sub
Private Sub mnuFileNewForm Click()
Dim frmNewForm As New frmChildMDI
frmCount = frmCount + 1
frmNewForm.Caption = "Дочерняя форма " + Str(frmCount)
frmNewForm.Show
End Sub
Private Sub mnuWindowTileVertical Click()
mdiParentMDI.Arrange vbTileVertical
End Sub
Работающее приложение с упорядоченными окнами представлено на  5.
Аналогично можно запрограммировать другие способы упорядочивания дочерних окон в родительском.
Интерфейс типа проводник
Интерфейс типа проводник разрабатывается для доступа к иерархическим древовидным структурам, то есть к таким, где встречается вложенность. Примером вложенности могут служить папки и файлы. Файлы лежат в папках, которые в свою очередь лежат в вышестоящих папках и так далее. Примером такого интерфейса является проводник Windows ( 6). На рисунке наглядно видна структура хранения папок и файлов, образующая иерархическое дерево. По своей сути это аналог интерфейса SDI, разработанный специально для древовидных структур.
Интерфейс приложения типа проводник содержит следующие элементы:

  • главное меню;
  • окно приложения для размещения элементов управления данными (в нашем случае это окно с заголовком "Проводник — Microsoft Visual Studio");
  • иерархический список элементов древовидной структуры. Это могут быть папки и файлы, документы, если они организованы в иерархическую структуру;
  • элементы управления для работы с данными: кнопки, поля, флажки и т. п.;
  • строка состояния. Элементы интерфейса

Рассмотрим подробнее основные элементы интерфейса и возможности их использования в приложениях Visual Basic 6.
 
Меню
Любое приложение создается для реализации комплекса функций, обеспечивающих выполнение общей задачи приложения. Для быстрого доступа ко всем функциям приложения используется меню: главное меню приложения и контекстное меню отдельных объектов приложения (форм, панелей).
При проектировании меню следует руководствоваться определенными принципами. Главный из них — стандарты. Рекомендуется придерживаться стандартных названий команд меню и их расположения: например, пункт меню для работы с файлами рекомендуется называть в своих приложениях File (Файл), а пункт меню для вызова справочной системы приложения — Help (Справка). При этом пункт меню File желательно располагать самым первым, а пункт Help — последним. На этот стандарт для всех приложений Windows, к которому привыкли многие миллионы пользователей, можно вполне положиться. Приложение будет при этом более понятным пользователю.
В процессе разработки меню желательно группировать команды меню, реализующие функции для решения конкретной задачи (например, работа с файлами), в одно раскрывающееся меню, которое будет соответствовать пункту меню. Например, все команды, реализующие функции работы с файлами, желательно сгруппировать в одно раскрывающееся меню, связанное с пунктом меню File.
 В приложениях каждой команде меню, как правило, соответствует "горячая" клавиша (клавиша быстрого доступа). Рекомендуется по возможности использовать стандартные клавиши, например, как в Microsoft Word. В принципе, это приложение может служить стандартным образцом для создания собственных приложений при разработке не только меню, но и всех других элементов.
Как и любой другой объект приложения, меню имеет набор свойств. Свойства меню доступны для редактирования в окне Properties (Свойства) формы, которой принадлежит меню ( 7).
Основные свойства меню приведены в табл. 7.6.
Таблица 7.6. Основные свойства меню

Редактор меню Menu Editor
Для проектирования меню всех видов используется редактор меню Menu Editor (Редактор меню) среды проектирования IDE ( 8). Редактор меню вызывается одним из следующих способов:

  • командой Menu Editor (Редактор меню) меню Tools (Инструменты);
  • нажатием кнопки Menu Editor на стандартной панели инструментов;
  • нажатием комбинации клавиш <Ctrl>+<E>.

Редактор создает меню для активного в данный момент окна, то есть, если активно MDI-OKHO, проектируется меню для него, если активна дочерняя форма, проектируется меню для дочерней формы. На  8 показан редактор меню родительского окна, созданного автоматически мастером приложения Application Wizard.
Редактор меню состоит из двух групп: элементов управления свойствами и элементов конструирования структуры меню. Управлять основными свойствами меню, о которых было сказано выше, можно с помощью следующих элементов редактора меню:

  • поле Caption (Заголовок) — наименование пункта меню, то есть текст, появляющийся в меню;
  • поле Name (Имя) — имя меню. Используется для идентификации объекта при написании программных кодов;
  • раскрывающийся список Shortcut (Оперативная клавиша) — назначает комбинацию клавиш для быстрого вызова команды меню;
  • поле HelpContextID (Идентификатор справки) — ссылка на тему в справочной системе;
  • флажок Enabled (Доступно) — доступ к пункту меню;
  • флажок Visible (Видимость) — определяет, будет ли виден на экране элемент меню;
  • флажок WindowList (Список окон) — определяет наличие списка открытых окон.

Элементы группы конструирования структуры меню позволяют добавлять и удалять новые пункты меню, перемещать пункты по вертикали, меняя порядок их следования, и по горизонтали, меняя расположение пунктов в иерархии системы меню:

  • кнопки с направленными вправо и влево стрелками перемещают пункты или команды меню в иерархии меню;
  • кнопки с направленными вверх и вниз стрелками перемещают пункты или команды меню по структуре меню;
  • Next (Следующий) — перемещает указатель к следующему пункту меню. Если указатель находится на последнем пункте меню, то создается новый пункт меню или новая команда меню такого же уровня иерархии;
  • Insert (Вставить) — добавляет пункт меню или команду в пункт меню;
  • Delete (Удалить) — удаляет пункт меню или команду из пункта меню.

Для добавления пункта меню выполните следующие шаги:
1. Выберите место в имеющейся структуре меню.
2. Добавьте пункт меню, нажав кнопку Insert (Вставить).
3. В поле Caption (Заголовок) введите название пункта меню, которое будет отображаться в строке меню при запуске приложения на выполнение.
4. В поле Name (Имя) введите имя пункта меню, по которому он иденти фицируется в программном коде.
 
Контекстное меню
Для приложения любого типа можно использовать удобное средство быстрого доступа к функциям — контекстное меню. Контекстное меню связано с некоторым действием (обычно это щелчок правой кнопки мыши на объекте) и вызывается в любом месте приложения. В исходном состоянии контекстное меню невидимо и визуализируется рядом с указателем мыши после вызова. Контекстным такое меню называется потому, что оно появляется рядом с выбранным объектом, и его состав зависит от содержания (контекста) этого объекта. После выбора команды из контекстного меню оно исчезает.
Проектируется контекстное меню как один из пунктов верхнего уровня строки меню. Поскольку меню должно быть скрыто и вызываться определенным действием, свойство visible проектируемого пункта меню необходимо установить в значение False.
Для визуализации контекстного меню на экране необходимо использовать метод popUpMenu формы. Например, для вызова меню File (Файл) при нажатии правой кнопки мыши достаточно написать такую условную конструкцию для события MouseUp формы:
If Button = vbRightButton
Then Form1.PopUpMenu mnuFile
End If
В этом примере при выполнении в форме события MouseUp (Нажатие на кнопку мыши) проверяется, какая кнопка нажата. В данном случае, при помощи внутренней константы Visual Basic 6 vbRightButton (Правая кнопка) проверяется нажатие на правую кнопку мыши и запускается метод PopUpMenu. В качестве параметра задается имя требуемого контекстного меню.
 
Панели инструментов
В дополнение к строке состояния и контекстному меню, в настоящее время большой популярностью пользуются панели инструментов, позволяющие ускорить доступ к функциям приложения. Обычно панель инструментов содержит наиболее часто используемые команды строки меню или контекстных меню. При разработке приложении можно применять панели двух видов: обычную панель ToolBar ( 9) и улучшенную панель CoolBar ( 10).
Для проектирования панелей инструментов в Visual Basic 6 используются:

  • мастер панелей инструментов, входящий в состав мастера приложений;
  • элемент управления ToolBar для создания обычной панели инструментов;
  • элемент управления CoolBar для создания улучшенной панели инструментов. Мастер панелей инструментов Toolbar Wizard

Для проектирования панелей инструментов в программе Visual Basic можно использовать мастер панелей инструментов, работающий в составе мастера приложений VB Application Wizard.
Замечание
Запуск и работу данного мастера мы рассмотрели в главе 2.
Диалоговое окно мастера показано на  11. В верхней части окна мастера расположена предлагаемая по умолчанию панель инструментов, ниже расположены два списка. Левый список содержит набор кнопок, который может быть добавлен на панель инструментов. Правый список отображает набор кнопок, уже размещенных на панели инструментов.
Для добавления кнопки на панель инструментов необходимо выбрать в левом списке требуемую кнопку и перенести ее в правый список, выполнив одно из следующих действий:

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

Чтобы отредактировать наименование или изменить значок кнопки, располагаемой на панели инструментов в верхней части окна мастера, нажмите данную кнопку. Откроется диалоговое окно Button Attributes (Атрибуты кнопки) ( 12), в котором можно изменить требуемые параметры. Для изменения значка нажмите кнопку Change Bitmap и с помощью открывшегося диалогового окна выберите графический файл для изображения, размещаемого на кнопке.
Кнопка Reset (Сброс) возвращает панель инструментов в исходное состояние, устанавливаемое мастером по умолчанию. Изменить последовательность кнопок на панели инструментов можно кнопками перемещения позиций в списке. Следует иметь в виду, что кнопки перемещения позиций управляют только правым списком.
Используя кнопку Load an External or Icon можно добавить на панель инструментов свою кнопку Bitmap. Пользовательская кнопка размещается в правом списке и на панели инструментов. 
Элемент управления ToolBar
Элемент управления ToolBar предоставляет возможность применять в приложении обычные панели инструментов. Для использования этого элемента управления в приложении необходимо подключить к проекту библиотеку Microsoft Windows Common Controls 6.0, выбрав команду Components (Компоненты) меню Project (Проект). В открывшемся при выполнении этой команды окне Components необходимо найти в списке указанную библиотеку, установить располагаемый с левой стороны флажок и нажать кнопку ОК. После подключения этой библиотеки элемент управления TooiBar появится на панели элементов управления.
Панель инструментов ToolBar является контейнером и может содержать следующие элементы управления:

  • кнопку PushButton, работающую как обычная кнопка формы;
  • кнопку-флажок CheckButton, которая работает как флажок и может находиться в состояниях нажато/отжато;
  • группу кнопок-переключателей ButtonGroup, работающих как аналог переключателя в форме, то есть нажата может быть только одна кнопка из группы;
  • кнопку-разделитель Separator, используемую для создания интервалов между кнопками;
  • кнопку-заменитель Placeholder, служащую для резервирования места на панели для других типов элементов управления, таких как раскрывающийся список ComboBox, список ListBox, переключатель OptionBox, текстовое поле TextBox;
  • кнопку раскрывающегося списка DropDown, работающую аналогично раскрывающемуся списку формы.

Управлять панелью можно при помощи основных свойств, описанных в табл. 7.7.
Таблица 7.7. Основные свойства панели инструментов
 
Возможности настройки панели инструментов рассмотрим на примере. Для этого сконструируем небольшую панель инструментов в приложении MyMDIApp, созданном для проверки свойств интерфейса в стиле MD1. Выполните для этого следующие действия:
1. Подключите к проекту библиотеку Microsoft Windows Common Controls 6.0, в которой содержится элемент управления ToolBar, воспользовавшись диалоговым окном Components (Компоненты).
2. Добавьте в родительскую форму объект ToolBar, дважды щелкнув мышью кнопку ToolBar на панели элементов управления.
3. Откройте окно свойств, выбрав команду Properties Window (Окно свойств) в меню View (Вид) при выделенной в форме панели инструментов.
4. Используя свойство Name, присвойте панели имя tbrTools.
5. Панель инструментов создана, теперь необходимо разместить на ней кнопки. Для этого вызовем окно проектирования панели, нажав на ней правую кнопку мыши и выбрав в появившемся контекстном меню команду Properties (Свойства).
6. В открывшемся диалоговом окне Property Pages ( 13) по умолчанию выбрана вкладка General (Основная), позволяющая установить основные свойства панели. Оставим параметры в исходном состоянии. Выберите вкладку Buttons (Кнопки), с помощью которой создаются кнопки панели инструментов.
7. Нажмите кнопку Insert Button (Вставить кнопку) для добавления новой кнопки на панель инструментов. Эту кнопку будем использовать для вызова нового дочернего окна формы, то есть как аналог команды Новая форма меню Файл родительского окна.
8. В полях, управляющих свойствами кнопок, задайте следующие значения:

  • в поле Caption (Надпись) введите Новая. Данный текст появится на кнопке;
  • в поле Key (Ключ) введите идентификатор кнопки для использования в программном коде ToolsNewForm;
  • в поле ToolTipText (Подсказка) введите текст Открыть новое дочернее окно, который будет появляться в виде подсказки под курсором при его установке на кнопку;
  • в поле Style (Стиль) оставьте значение 0-tbrDefault, определяющее обычную кнопку. Размер кнопки будет адекватен введенному тексту в поле Caption и изменению недоступен. Заметим, что удалять кнопки можно при помощи кнопки Remove Button (Исключить кнопку).

9. Запрограммируем действие, выполняемое при нажатии новой кнопки. Для вызова редактора кода дважды щелкните мышью на панели tbrTools. При этом будет автоматически использован шаблон для действия, выполняемого при нажатии на кнопку панели инструментов. Введите следующий программный код:
Private Sub tbrTools_ButtonClick (ByVal Button As MSComctlLib. Button)
Select Case Button.Key
Case Is = "ToolsNewForm"
Dim frmNewForm As New frmChildMDI
frmCount = frmCount + 1
frmNewForm.Caption = "Дочерняя форма " +
Str(frmCount)
frmNewForm.Show
End Select
End Sub
Замечание
Несмотря на то, что кнопка на панели инструментов всего одна, в коде применена конструкция Select Case для отработки действий других добавляемых на панель кнопок.
На  14 показано приложение, содержащее панель инструментов с одной кнопкой.
Вместо текста на кнопке можно разместить графическое изображение, как это обычно и делается для экономии места. Для этого необходимо сначала создать файл графического изображения, а затем подключить его к кнопке панели. В качестве объекта для хранения списка графических изображений можно использовать элемент управления imageList. Создадим такой список в нашем приложении. Данный элемент управления находится в той же библиотеке, что и панель инструментов, поэтому дополнительного подключения библиотек не потребуется. Для размещения в форме элемента управления imageList выполните следующие действия:
1. Разместите в родительской форме объект imageList, дважды щелкнув мышью кнопку ImageList (Я на панели элементов управления.
2. В окне свойств задайте имя созданного объекта imlimageListTools.
3. Выделите объект, нажмите правую кнопку мыши и выберите в появившемся контекстном меню команду Properties (Свойства). Откроется диалоговое окно Property Pages (Страницы свойств), с помощью которого создадим список графических изображений ( 15).
4. Выберите вкладку Images (Изображения).
5. Для идентификации списка изображений введите в поле Key (Ключ) имя списка imITools.
6. Чтобы добавить в список графическое изображение, нажмите кнопку Insert Picture (Вставить изображение). Откроется диалоговое окно поиска графических файлов. Выберите требуемый файл и нажмите кнопку Открыть. Графическое изображение добавляется в список. Для добавления следующего элемента списка опять нажмите кнопку Insert Picture. Завершив формирование всего списка графических изображений, нажмите кнопку ОК для закрытия диалогового окна Property Pages.
Замечание
Для создания панели инструментов в своем приложении мы воспользуемся графическими файлами New.bmp и Open.bmp из каталога \Visual Basic \Common\Grafics\Bitmaps\OffCtrlBr\Small\Color.
7. Список изображений готов. Для подключения созданного списка изображений к панели необходимо вызвать окно свойств панели и на вкладке General (Общие) выбрать наименование созданного графического списка в открывающемся списке ImageList (Список изображений).
Для размещения графического изображения на кнопке панели инструментов выполните следующие действия:
1. Откройте диалоговое окно Property Pages (Страница свойств) для проектируемой панели.
2. На вкладке General (Общие) выберите из списка ImageList наименование
созданного нами списка изображений imlImageListTools.
3. Перейдите на вкладку Buttons (Кнопки).
4. Установите в поле Index (Индекс) значение 1, указывая, что выбирается первая кнопка.
5. Установите в поле Image (Изображение) значение 1, указывая, что выбирается первое изображение из списка. На кнопке после этого появляется требуемое изображение. При этом размеры кнопки автоматически устанавливаются в соответствии с размером изображения.
Приложение, содержащее на панели инструментов графическую кнопку, показано на  16.
Совет
Для создания интервалов между кнопками используются кнопки, для которых свойство Style установлено в значение tbrSeparator.
Элемент управления CoolBar
С помощью элемента управления coolBar можно создавать в приложении улучшенные панели инструментов. Для использования этого элемента управления в приложении необходимо подключить к проекту библиотеку Microsoft Windows Common Controls-3 6.0, воспользовавшись диалоговым окном Components (Компоненты), открываемым при выборе команды Components (Компоненты) меню Project (Проект).
В отличие от объекта ToolBar, элемент управления CoolBar более универсален и кроме кнопок может содержать другие элементы управления, в том числе и панели типа ToolBar. Усовершенствованная панель представляет собой контейнер, причем он состоит из маленьких контейнеров Band (Полоса), которые являются объектами и непосредственно включают в себя все элементы управления, вводимые в CoolBar.
Для создания в проекте панели инструментов типа CoolBar выполните следующие действия:
1. Подключите к проекту библиотеку Microsoft Windows Common Controls-3 6.0, в которой содержится элемент управления CoolBar.
2. Добавьте в родительскую форму объект coolBar, дважды щелкнув мышью кнопку CooiBar на панели элементов управления.
3. Присвойте новой панели инструментов имя cbrTools.
4. Выделите объект CoolBar, нажмите правую кнопку мыши и выберите в появившемся контекстном меню команду Properties (Свойства). Открывается диалоговое окно Property Pages ( 17), предназначенное для создания панели типа CoolBar.
5. Используя кнопку Insert Band (Вставить полосу), добавьте на панель инструментов еще несколько объектов Band.
Теперь новую панель можно настраивать, добавляя на нее необходимые объекты или удаляя их. Добавим, например, кнопку управления для вызова дочернего окна. Для этого выполните следующие действия:
1. Используя кнопку CommandButton на панели элементов управления, разместите на создаваемой панели инструментов CoolBar кнопку управления.
2. Скорректируйте в окне Properties (Свойства) для созданной командной кнопки следующие свойства:

  • в правый столбец свойства Name введите наименование объекта cbNewCoolBar,
  • в свойство Caption введите текст Новая, который будет размещен на кнопке;
  • в свойство Height кнопки введите значение 300;
  • для свойства тор задайте значение 25.

3. Для создания кода, выполняемого при нажатии новой кнопки на панели инструментов, в окне редактора кода введите следующие команды, осуществляющие вызов дочерней формы:
Private Sub cbNewCoolBar_Click ()
Dim frmNewForm As New frmChildMDI
frmCount = frmCount + 1
frmNewForm.Caption = "Дочерняя форма " + Str(frmCount)
frmNewForm.Show
End Sub
4. Запустите приложение на выполнение.

Диалоговые окна
В Visual Basic 6 существует специальный вид окон — диалоговые. В распоряжении разработчика имеется хорошо развитый инструментарий для их создания. Диалоговые окна бывают двух типов — модальные и немодальные. Модальное диалоговое окно — это окно, из которого нельзя перейти в другое окно, не закрыв текущее. Данный вид диалоговых окон используется для выдачи сообщений о ходе работы приложения, его настройки или ввода каких-либо данных, необходимых для работы. Примером такого диалогового окна в программе Visual Basic является окно About. Модальное диалоговое окно вынуждает пользователя совершать некоторые действия или отвечать на запрос приложения вводом информации или выполнением какого-либо действия.
Немодальное диалоговое окно — это окно, позволяющее перемещать фокус на другое окно или форму без закрытия текущего окна. Данный тип диалоговых окон используется редко. Примером немодального диалогового окна в Visual Basic является окно Find (Поиск), дающее возможность осуществлять поиск нужной информации.
Простейшие из диалоговых окон — это окна сообщений и окна, предназначенные для ввода информации. В дополнение к ним в Visual Basic 6 существует набор более сложных стандартных диалоговых окон для приложений:

  • Open (Открыть) — диалоговое окно для поиска в файловой структуре нужного файла;
  • Save As (Сохранить как) — для поиска места хранения файла и ввода его имени;
  • Font (Шрифт) — для выбора и установки шрифта;
  • Color (Цвет) — для выбора цветовой палитры;
  • Print (Печать) — для настройки режима печати;
  • Help (Справка) — для работы со справочной системой приложения. Рассмотрим эти диалоговые окна более подробно.

 
Окно сообщения (MsgBox)
Диалоговое окно сообщения ( 19) не требует проектирования и вызы вается из программы командой MsgBox или с помощью аналогичной функции MsgBox о, имеющей следующий синтаксис:
MsgBox (prompt[, buttons] [, title] [, helpfile, context])
где:

  • prompt — текст сообщения в диалоговом окне. Максимальная длина текста 1024 символа. В этот текст можно вставить в качестве разделителей строк перевод каретки Chr(13), перевод строки Chr(lO) или их комбинацию;
  • buttons — числовое выражение, которое задает параметры для кнопок управления и значков в диалоговом окне и составлено из констант, указанных в табл. 7.8 и 7.9. Если значение не указано, то по умолчанию присваивается значение 0;
  • title — текст заголовка диалогового окна;
  • helpfile — ссылка на файл справочной системы;
  • context — ссылка на содержание в файле справочной системы.

Необходимо иметь в виду, что для задания нескольких параметров кнопок и значков одновременно, следует просто сложить соответствующие константы.
Для примера введите в командном окне среды проектирования Immediate следующую команду и нажмите клавишу <Enter>:
MsgBox "Приветствуем Вас!", vbYesNo + vbExclamation,"Окно сообщений"  
В диалоговых окнах сообщении можно управлять отображаемыми в окне сообщения кнопками и установкой фокуса на одной из кнопок при открытии окна. Для этого можно использовать константы, приведенные в табл. 7.9.
Таблица 7.9. Константы параметров наличия кнопок в окне сообщения и установки фокуса на кнопку


В зависимости от выбора кнопки диалоговое окно MsgBox возвращает одно из значений, заданных системными константами. Это необходимо для анализа нажатой кнопки и выполнения соответствующих действий в программе. В исходном коде для этого можно использовать константы, указанные в табл. 7.10.
Таблица 7.10. Значения констант, возвращаемые кнопками окна сообщения
 
Диалоговое окно ввода информации (InputBox)
Достаточно часто в диалоговом окне необходимо не только нажать кнопки выбора действия, но и ввести определенную информацию, которая затем анализируется программой. Для выполнения такого рода действий в Visual Basic можно использовать диалоговое окно ввода информации InputBox ( 20). Функция InputBox имеет следующий синтаксис:
InputBox (prompt [, title] [, default] [, xpos] [, ypos] [, helpfile, context])
где:

  • prompt — текст сообщения в диалоговом окне. Максимальная длина текста 1024 символа. В этот текст можно вставить в качестве разделителей строк перевод каретки Chr(13), перевод строки Chr(lO) или их комбинацию;
  • title — текст заголовка диалогового окна;
  • default — значение текстового поля ввода по умолчанию. Если параметр отсутствует, строка остается пустой;
  • xpos — позиция по горизонтали левого верхнего угла диалогового окна относительно левого верхнего угла экрана. По умолчанию присваивается значение, соответствующее середине экрана;
  • ypos — позиция по вертикали левого верхнего угла диалогового окна относительно левого верхнего угла экрана. По умолчанию присваивается значение, соответствующее середине экрана;
  • helpfile — ссылка на файл справочной системы;
  • context — ссылка на содержание в файле справочной системы.

Для примера введите в командном окне среды проектирования Immediate следующую команду:
strUserTest = InputBox ("Введите пароль", "Запуск приложения", "****")
В результате получите диалоговое окно, показанное на  20.
В отличие от диалогового окна MsgBox, в окне InputBox всегда имеются только две кнопки управления: ОК и Cancel. Кнопка ОК подтверждает ввод данных, кнопка Cancel — закрывает диалоговое окно без ввода данных.
Использование элемента управления CommonDialog для создания диалоговых окон
Все диалоговые окна, перечисленные в начале раздела "Диалоговые окна", можно создать с помощью элемента управления commonDialog. Прежде чем его использовать, необходимо подключить к проекту библиотеку Microsoft Common Dialog Control 6.0 через диалоговое окно Components (Компоненты) среды проектирования.
Для вызова диалоговых окон необходимо использовать соответствующие каждому из этих окон методы элемента управления commonDialog, указанные в табл. 7.11.
Таблица 7.11. Методы элемента управления CommonDialoq
Для изучения диалоговых окон, образуемых с помощью элемента управления CommonDialog, создадим небольшой проект. Выполните следующие действия:
1. Создайте новый стандартный проект. Для этого в меню File (Файл) выберите команду New Project (Создать новый) и в открывшемся диалоговом окне дважды щелкните мышью на значке Standard EXE.
2. Присвойте проекту имя MySmallProject. Для этого откройте окно свойств проекта, выбрав команду Project1 Properties (Свойства Project 1) меню Project (Проект). После переименования проекта эта команда примет вид MySmallProject Properties (Свойства MySmallProject).
3. Подключите к проекту библиотеку Microsoft Common Dialog Control 6.0. Для этого в меню Project (Проект) выберите команду Components, в открывшемся диалоговом окне Components (Компоненты) установите флажок, расположенный рядом с названием этой библиотеки, и нажмите кнопку ОК.
4. Задайте наименование формы проекта FormForControlCommDiaiog.
5. Используя свойство caption формы, введите заголовок окна Форма для проверки диалогов CommonDialog.
6. Добавьте в форму элемент управления CommonDialog, дважды щелкнув мышью кнопку CommonDialog на панели элементов управления. Если эта панель отсутствует на экране, то в меню View (Вид) выберите команду TooIBox (Панель инструментов).
7. Присвойте элементу управления CommonDialog наименование cdMyDialog.
8. Добавьте в форму кнопку управления типа commandButton и назовите ее cbControl. Эта кнопка будет использоваться нами для вызова диалогового окна по событию click.
9. Используя свойство caption, введите название кнопки Проверка диалогов CommonDialog.
Полученное приложение представлено на  21. Этот проект, содержащий элемент управления commonDialog, будем использовать для создания диалоговых окон и знакомства с ними, размещая в событии click кнопки cbControl код настройки параметров требуемого диалогового окна и вызова соответствующего ему метода.
Диалоговое окно открытия файла
Диалоговое окно открытия файла предназначено для поиска файлов, используемых в программе. Имя выбранного файла или списка файлов возвращается в свойстве FileName объекта CommonDialog. Для вызова диалогового окна открытия файла ( 22) необходимо в событии click кнопки cbControl приложения MySmallProject ввести следующий код:
Private Sub cbControl_Click()
cdlMyDialog.ShowOpen
End Sub
Для ввода кода достаточно дважды щелкнуть на объекте cbcontroi левой кнопкой мыши. При этом открывается редактор кода с шаблоном кода для события click этой кнопки.
Значения для свойства cdlMyDialog.

 

 
На главную | Содержание | < Назад....Вперёд >
С вопросами и предложениями можно обращаться по nicivas@bk.ru. 2013 г. Яндекс.Метрика