Лекции по ЧМВ-дополнительные (1022759), страница 5
Текст из файла (страница 5)
5. Элементы управления
5.1. Меню
5.2. Кнопки
5.3. Списки
5.4. Текстовые поля
5.5. Панель инструментов и строка состояния
5.6. Другие элементы графического интерфейса
5.7. Выбор визуальных атрибутов отображаемой информации
5.1. Меню
5.1.1. Главное меню и выпадающие меню
5.1.2. Контекстные (всплывающие) меню
5.1.3. Каскадные меню
5.1.4. Заголовок меню
5.1.5. Пункты меню
Меню содержит перечень команд, имеющихся в распоряжении пользователя при выполнении определенного шага задания или задания в целом. Меню дает возможность пользователю выбора необходимого средства решения задачи, не требуя от него запоминания имен команд и синтаксиса. Существуют различные типы меню:
-
Главное меню окна.
-
Выпадающие меню.
-
Контекстные (всплывающие) меню.
-
Каскадные меню.
5.1.1. Главное меню и выпадающие меню
Одна из наиболее распространенных форм меню - линейная последовательность команд (или разделов). Именно в таком виде выполнено главное меню окна, располагаемое горизонтально непосредственно под строкой заголовка программы. В связи с таким расположением главное меню иногда называют полосой меню.
В главном меню трудно перечислить все доступные команды. Поэтому в нем обычно располагаются только именованные разделы, содержащие группы команд определенного функционального назначения. Для отображения команд разделов используются выпадающие меню. Выпадающее меню отображается в виде столбца, размещаемого под выбранным разделом главного меню.
В выпадающем меню команда, на которой размещается курсор выделяется цветом. После отпускания клавиши выбранная команда исполняется. Те операции, которые в данный момент времени не могут быть выполнены (например, нельзя удалить кадр, который не был создан) отображаются блеклым цветом.
Для создания главного меню используется компонент MainMenu. Для его заполнения используется дизайнер меню. В нем имеется полоса главного меню, в котором выделен первый пункт. После набора текста первого пункта и нажатия клавиши Enter первый пункт заносится в меню и создаются поля для связанных с ним пунктов: справа следующий пункт главного меню, снизу первый подпункт первого пункта (последний выделен для заполнения). Затем заполняются подпункты первого пункта главного меню, каждый раз при завершении ввода очередного пункта формируются поля для новых подпунктов. Остальные пункты главного меню создаются аналогично. При желании можно в любой пункт меню поместить пиктограмму, которая должна храниться под задаваемым номером в списке изображений, доступном в приложении. Для каждого пункта можно назначить горячие клавиши, которые выбираются в свойстве ShortCut пункта из списка.
После создания главного меню нужно связать каждый пункт или подпункт с обработчиком события его активизации. Каждому пункту соответствует имя, связывающее его с обработчиком.
Внимание! Имя пункта и его текстовая надпись разные вещи.
5.1.2. Контекстные (всплывающие) меню
Контекстное меню дает пользователю доступ к операциям над объектами. Каждому объекту должно соответствовать свое контекстное меню, содержащее операции только для этого объекта. Контекстное меню называют иначе , так как оно отображается в отдельном окне. Для вызова контекстного меню используется щелчок правой кнопкой мыши по желаемому объекту. Контекстное меню выводится рядом с выбранным объектом, содержит столбец с возможными операциями над объектом. Выбранная курсором операция выделяется в меню цветом и при отпускании клавиши мыши исполняется, после чего контекстное меню пропадает.
Внешне контекстное меню похоже на выпадающее, но отличается от него тем, что включает только операции для конкретного объекта и для данной ситуации (в контекстном меню операции, которые в данный момент времени не могут быть выполнены, вообще не отображаются). Размеры контекстного меню обычно невелики.
При выборе порядка следования операций в контекстном меню нужно руководствоваться следующими рекомендациями:
-
Первыми должны располагаться основные команды (например, Открыть, исполнить).
-
Во вторую группы должны быть включены команды, реализуемые через буфер обмена (например, Вырезать, Копировать, Вставить).
-
Последними должны идти команды редактирования дополнительных атрибутов (если они имеются).
-
Операции сходного функционального назначения следует объединять в категории, которые разделяются линиями.
Контекстные меню могут применяться к любым объектам: окно, пиктограмма и др.
Для создания контекстного меню используется компонент PopMenu. Для его заполнения используется дизайнер контекстного меню. Дизайнер представляет собой урезанный дизайнер главного меню, в котором генерируется только один список.
После создания контекстного меню нужно связать его с элементом управления. Для этого в свойстве PopupMenu нужного компонента делается ссылка на имя контекстного меню. Например, если в приложении имеется кнопка Button1, для которой создано контекстное меню с именем PopupMenu1, и выбрано Button1.PopupMenu:=PopupMenu1, то при щелчке правой кнопкой мыши по кнопке появится контекстное меню этого элемента.
5.1.3. Каскадные меню
Каскадное меню может использоваться для того, чтобы предоставить пользователю возможность дополнительного выбора и при этом не занимать дополнительного пространства в родительском меню. Каскадное меню содержит множество подменю, связанные с пунктами в родительском меню. Каскадное меню иначе называют иерархическим, а подменю в нем дочерним. Если строка родительского меню имеет дочернее меню, то в правой части этой строки размещается признак наличия дочернего меню - стрелочка.
Каскадное меню может быть создано с помощью дизайнера меню, употребляемого для генерации главного меню. Если для какого либо пункта главного меню нужно задать иерархическое продолжение, то нужно выделить этот пункт меню, вызвать для него контекстное меню, в котором выбрать команды создания подменю Create Submenu. В правой части строки выбранного пункта появится признак подменю в виде стрелочки, а справа от него поле для заголовка подменю. Далее действия выполняются аналогично созданию любого выпадающего меню.
Каскадные меню усложняют интерфейс. Поэтому при их использовании учитывайте следующие рекомендации:
-
Минимизируйте число уровней иерархии.
-
Избегайте использования каскадных меню для доступа к часто используемым командам.
-
В качестве альтернативного решения применяйте вторичные окна и панели инструментов.
5.1.4. Заголовок меню
Каждое выпадающее и каскадное меню имеют собственные имя и текстовую надпись. Текстовая надпись информирует пользователя о назначении пункта. Имя связывает компоненты меню друг с другом и обработчиками событий. Имя для выпадающего меню - это имя пункта главного меню. Для каскадного меню - это имя подпункта родительского меню, с которым связано каскадное меню. Заголовок должен обозначать предназначение меню. Старайтесь для него использовать одно слово, избегая сложных слов (например, Шрифторазмер).
Внимание! Имя пункта и его текстовая надпись разные вещи.
5.1.5. Пункты меню
Каждый пункт меню соответствует определенному действию, который может выполнить пользователь в данной ситуации. Пункты в меню могут быть представлены в виде текста, графики (например, в виде пиктограммы), либо комбинации текста и графики.
Всегда обеспечивайте пользователя визуальным указанием недоступных пунктов, отображая их блеклым цветом. Если недоступны все пункты меню, то следует сделать недоступным и его заголовок.
Если пункт меню является командой, которая требует дополнительной информации, то название команды должно сопровождаться многоточием (...). При выборе такой команды должно вызываться дополнительное окно с запросом нужных данных.
Справа от пункта может быть сокращенное обозначение клавиши быстрого доступа (иначе горячая клавиша, или клавиша-акселератор), при нажатии которой на клавиатуре обеспечивается быстрое исполнение команды. Например, Ctrl + C для копирования в буфер выделенного объекта. Использование таких клавиш избавляет пользователя от поиска нужной команды в меню. Горячие клавиши стоит применять только для часто выполняемых операций. При этом для стандартных действий нужно использовать общепринятые горячие клавиши. Например, во всех приложениях клавиша F1 применяется для вызова контекстной справки.
Пункты меню могут быть независимыми или взаимозависимыми. В них целесообразно вводить маркеры, размещаемые слева от имени пункта. Независимые пункты эквивалентны флажкам. Для визуального отображения установки таких пунктов рекомендуется использовать маркер флажка (в виде птички).Взаимозависимые пункты эквивалентны переключателям. Для визуального отображения выбора таких пунктов рекомендуется использовать маркер переключателя (в виде кружочка, с точкой при выбранном пункте)..
Меню может содержать пункт, выбираемый по умолчанию. Для этого пункта должна поддерживаться техника ускоренного доступа (например, посредством двойного щелчка мыши). В соответствии с системными соглашениями такие пункты выделяются полужирным шрифтом.
При выборе текстовых имен пунктов рекомендуются следующие правила:
-
Используйте уникальные имена в пределах одного меню.
-
Название пункта должно состоять из одного слова (глагол для действий, существительное для объектов).
-
Определяйте уникальные имена клавиш быстрого доступа (горячие клавиши) для часто исполняемых действий.
-
Придерживайтесь норм использования заглавных букв, принятых в языке.
5.2. Кнопки
5.2.1. Кнопки управления
5.2.2. Зависимые переключатели
5.2.3. Независимые переключатели
Кнопки - это элементы ПИ, которые служат для инициирования какого-либо действия или изменения свойств объектов. Существует три основных типа кнопок
-
Кнопки управления, или Командные кнопки (Command Buttons).
-
Зависимые переключатели, или Радиокнопки (Radio Buttons).
-
Независимые переключатели, или Флажки (Check Boxes - Чекбоксы).
Взаимодействие пользователя с кнопкой ограничивается одним действием – нажатием.
5.2.1. Кнопки управления
Нажатие на такую кнопку запускает какое-либо явное действие, поэтому правильнее называть такие кнопки «кнопками прямого действия». С другой стороны, из-за тяжеловесности этого словосочетания им всегда пренебрегают. В Интернете кнопка должна быть оформлена как текстовая ссылка, если она перемещает пользователя на другой фрагмент контента, и как кнопка – если она запускает действие. Ниже показаны командные кнопки, включая гипертекстовую ссылку справа.