Командные кнопки.
Командная кнопка (рис.1.4) - это такой элемент окна, “нажатие” на который вызывает вполне определенное действие. “Нажатие” на кнопку осуществляется либо перемещением на нее указателя мышки и щелчком левой кнопки, либо нажатием “горячей” клавиши (т.е. одновременным нажатием клавиши Alt и клавиши, соответствующей подчеркнутой букве в названии кнопки), либо нажатием клавиши пробела, если кнопка в данный момент имеет фокус (наименование такой кнопки обведено штриховой линией - на рис.1.4 это кнопка “Да”).
Рис.1.4 Диалоговое окно с четырьмя командными кнопками
Переключатели.
Переключатель (рис.1.5) - элемент окна, позволяющий включать или отключать некоторые дополнительные возможности приложения. Переключатель имеет два состояния: включен и выключен[1]. Управление переключателем со стороны пользователя осуществляется также, как и управление командной кнопкой. Важно подчеркнуть, что независимо от того, сколько переключателей расположено в окне, сгруппированы они или нет, каждый переключатель работает независимо от других.
Рис.1.5 Фрагмент окна с переключателями
Радиокнопки.
Радиокнопка (рис.1.6) как элемент управления окна в некотором роде близка переключателю. Этот элемент также имеет всего два состояния: включен/выключен. Принципиальное отличие от переключателей состоит в том, что радиокнопки, как правило, используются только группами. При этом включение одной радиокнопки в группе приводит к автоматическому выключению всех других кнопок этой группы. Иначе говоря, все радиокнопки в группе взаимозависимы. Так например, включение кнопки “Все” на рис.1.6 автоматически выключит кнопку “Страницы”. Управление радиокнопками осуществляется аналогично управлению переключателями, за исключением того, что передача фокуса от одной кнопки к другой осуществляется не клавишей Tab, а клавишами-стрелками.
Рис.1.6 Фрагмент окна с группой радиокнопок
Однострочный и многострочный элементы ввода
Однострочный элемент ввода (см. Рис.6.1, справа от радиокнопки “Страницы”) - это графический аналог GET-элемента в Clipper’e. Назначение его то же - ввод и корректировка однострочных данных. Многострочный элемент ввода (рис.1.7) предназначен для обработки сложных текстовых данных (например, мемо-полей), содержащих символы “возврат каретки". В Clipper'е, как изветно, для этих целей используется функция MemoEdit ().
Рис.1.7 Фрагмент окна с многострочным элементом ввода
Блоки списка
Блок списка - чрезвычайно мощный и полезный элемент управления окна. С его помощью пользователь может выбрать (пометить) из предлагаемого перечня, насчитывающего до 8000 элементов, одну или несколько необходимых ему строк. Различают простые и выпадающие блоки списков.
Простой блок (рис.1.8) представляет собой прямоугольник с заголовком, в рамках которого отображается несколько строк-вариантов. Если весь перечень вариантов не размещается в пределах этого прямоугольника, справа он дополняется вертикальным лифтом, обеспечивающим прокрутку всего перечня. Блок может дополняться и горизонтальным лифтом в случаях, когда строки не размещаются в нем целиком. Пользуясь мышкой или клавишами-стрелками, пользователь подсвечивает требуемую строку. В некоторых случаях блоки допускают выбор сразу нескольких элементов. Множественный выбор осуществляется мышкой (либо непосредственно, либо при одновременном удержании в нажатом состоянии клавиши Shift или Ctrl - в зависимости от свойств блока).
В практике чаще используются блоки выпадающих списков. Такие блоки нормально пребывают в так называемом закрытом состоянии, отображая лишь выбранный на текущий момент времени вариант (рис.1.9а). Тем самым экономится рабочая область окна, которую можно использовать для других управляющих элементов. Раскрытие блока осуществляется только в момент выбора щелчком мышки на стрелке
, после чего работа с ним производится в том же порядке, что и с обычным блоком. При переходе фокуса к другому элементу окна блок автоматически закрывается.Рис.1.8 Фрагмент окна с простым блоком списка
а) б)
Рис.1.9 Блок выпадающего списка в закрытом (а) и открытом (б) состоянии
Комбинированные блоки списка.
Комбинированный блок списка объединяет блок списка с однострочным полем ввода. Пользователь либо выбирает необходимую ему строку из предлагаемого перечня, либо попросту вводит ее с клавиатуры. Комбинированные блоки также бывают простыми (рис.1.10а) и выпадающими (рис.1.10б).
а) б)
Рис.1.10 Фрагменты окон с простым (а) и выпадающим (б) комбинированными блоками
Поля текста.
Поле текста - простейший элемент управления, необходимый для размещения в окне поясняющего текста. Этот элемент относится к категории пассивных - он не может получить фокус ввода.
Панели вертикальной и горизонтальной прокрутки
Панели вертикальной и горизонтальной прокрутки обеспечивают возможность скроллинга рабочей области окна в случаях, когда эта область выходит за его текущие границы. Панель вертикальной прокрутки располагается у правой границы окна, панель горизонтальной прокрутки - у нижней. На рис.1.11 представлен пример панели горизонтальной прокрутки. Управление панелями осуществляется с помощью мышки тремя способами. Первый состоит в “нажатии” мышкой требуемой кнопки скроллинга, второй - в “буксировке" мышкой лифта в нужном направлении. Третий способ реализуется щелчком мышки в некоторой области непосредственно на панели прокрутки.
Рис.1.11 Панель горизонтальной прокрутки
Элементы типа “группа”.
Элемент “группа" в CA-Visual Objects имеет две разновидности: простая группа и группа радиокнопок. Простая группа имеет чисто эстетическое значение, позволяя очерчивать рамкой любые функционально близкие друг другу элементы окна. Группа радиокнопок - рамка, очерчивающая только взаимосвязанные радиокнопки. Чисто внешне обе разновидности групп никак не отличаются друг от друга (рис.1.12). В то же время разница между ними есть. Простая группа - пассивный компонент окна (а следовательно, и приложения), в то время как группа радиокнопок - активный компонент, позволяющий упростить управление радиокнопками из программы.
Рис.1.12. Фрагмент окна с группами
Иконки (пиктограммы)
Иконка - это небольшое по размерам изображение (32х32 точки), которое может быть размещено в рабочей области окна в оформительских целях. Иконка - пассивный элемент окна, не получающий фокуса ввода.
Рис.1.13. Фрагмент окна с иконкой.
Наряду с окнами и их элементами управления, стандарт интерфейса GUI предполагает наличие у приложения и других атрибутов. Вот лишь некоторые из них:
Безусловная и полная поддержка мышки.
Полный отказ от модальных меню, в которых выбор одного варианта полностью исключает другие варианты. Пользователь в любой момент времени должен иметь возможность выполнить любую функцию из общего набора, предоставляемого приложением, независимо от того, что конкретно в данный момент происходит в программе.
Полная “прозрачность" всех элементов интерфейса для пользователя с точки зрения их назначения и выполняемых функций. При малейшем затруднении пользователь должен получить контекстно-чувствительную справку через известный ему стандартный механизм помощи.
Как видно, интерфейс с пользователем, предлагаемый и поддерживаемый Windows, существенно более богат и сложен в сравнении с тем, что имеет место в DOS. Ясно, что непосредственное программирование такого интерфейса - задача весьма и весьма сложная. К счастью, CA-Visual Objects имеет достаточный набор средств, позволяющих автоматизировать и, в конечном итоге, максимально упростить процесс разработки интерфейса. В частности, все описанные выше окна, их компоненты и элементы управления в полной мере поддерживаются как встроенными средствами визуального программирования (оконным редактором, редактором меню), так и развитыми средствами языка программирования.
Графический интерфейс - не самое главное нововведение в Windows, по сравнению c DOS. Гораздо более важным является то, что Windows - мультизадачная операционная среда, призванная обеспечить одновременную работу нескольких программ. Это важнейшее свойство Windows обусловливает еще один уровень требований как непосредственно к прикладным программам, так и к системам их разработки. И первое среди таких требований - отказ от процедурного программирования.