Популярные услуги

Все письменные КМ под ключ за 3 суток! (КМ-6 + КМ-7 + КМ-8 + КМ-9 + КМ-10)
КМ-6. Динамические массивы. Семинар - выполню любой вариант!
КМ-2. Разработка простейших консольных программ с использованием ООП + КМ-4. Более сложные элементы ООП - под ключ!
Любая задача на C/C++
Одно любое задание в mYsql
Сделаю ваше задание: Лабораторная работа на Pascal / Lazarus
Любой тест по базам данных максимально быстро на хорошую оценку - или верну деньги!
Любой реферат по объектно-ориентированному программированию (ООП)
Оба семинара по программированию под ключ! КМ-2. Разработка циклических алгоритмов + КМ-3. Функции и многофайловые программы в Си
Повышение уникальности твоей работе

Первичные окна

2021-03-09СтудИзба

4.2. ПЕРВИЧНЫЕ ОКНА

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

4.2.1. СТРУКТУРА ПЕРВИЧНОГО ОКНА

Типовое первичное окно состоит из рамки (или границы), которая определяет раз­меры окна, и заголовка окна, который идентифицирует информацию, представленную в окне. Если объем выводимой информации превышает текущий размер окна, оно дополняется полосами прокрутки. Окно может также содержать другие элементы ин­терфейса (меню, панель инструментов, строку состояния), как показано на рис. 4.3.

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

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

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

Рис. 4.3. Структура первичного окна.

Если приложение обеспечивает работу с различными форматами докумен­тов или файлов, и данное окно отображает один из этих файлов, используйте в полосе заголовка пиктограмму, соответствующую его типу (рис. 4.4).

Рекомендуемые материалы

Рис. 4.4. Использование пиктограммы типа файла в полосе заголовка окна

Если приложение использует многодокументный интерфейс (MDI), поместите пиктограмму приложения в полосе заголовка родительского окна, а в полосе заго­ловка дочернего окна — пиктограмму, которая отражает конкретный тип файла дан­ных приложения (как показано на рис. 4.5).


Рис. 4.5. Полосы заголовков родительского и дочернего окон MDI

Когда пользователь разворачивает дочернее окно, и полоса заголовка обоих окон объединяется, отобразите пиктограмму заголовка дочернего окна в полосе меню родительского окна (рис, 4.6). Если открыто несколько дочерних окон, то в указан­ной позиции следует отобразить только пиктограмму активного (самого верхнего) дочернего окна.

Рис. 4.6. Полоса заголовка родительского окна при наличии развернутого

дочернего окна

Полоса заголовка окна используется также в качестве интерактивного элемента для вызова всплывающего меню окна: когда пользователь щелкает на пиктограмме заголовка окна ПКМ, на экране появляется всплывающее меню для соответствую­щего объекта. Обычно такое меню содержит типовой набор команд (открыть/зак­рыть окно, изменить размер окна и т.п.). Рекомендуется также поддерживать ис­пользование двойного щелчка ЛКМ на пиктограмме окна в качестве ускоренного способа закрытия окна.

Заголовок окна идентифицирует объект, отображаемый в окне. Он также дол­жен быть согласован с пиктограммой этого объекта, используемой в файловой системе. Например, если пользователь открывает файл данных с названием Мой_Документ, то в полосе заголовка окна должна быть помещена пиктограмма для этого типа документа, сопровождающаяся именем файла данных. Дополнительно можно также указать имя используемого приложения.

Для приложения, использующего MDI, его имя отображается в родительском окне, а в дочернем окне — имя данных (рис. 4.6).

Если пользователь непосредственно открывает приложение, которое отображает новый файл данных, укажите его имя в заголовке окна, даже если пользователь еще не сохранял файл. Используйте для него какое-либо общее имя, отражающее тип данных, например Документ(п), Лист(п), Диаграмма(п), где n порядковый номер файла этого типа. Убедитесь, что предлагаемое имя не будет конфликтовать с суще­ствующими именами в текущем каталоге. Это имя может быть использовано как предлагаемое по умолчанию при сохранении файла. В некоторых случаях для нового файла удобнее использовать более универсальное название — Безымянный (Untitled).

Следуйте этому же соглашению, если ваше приложение содержит команду Создать, которая создает новые файлы. Избегайте указания имени пользователя для идентифи­кации окна. Вместо этого вы можете открыть диалоговую панель Сохранить как.., ко­торая позволяет пользователю подтверждать или изменять предлагаемое вами имя, когда они сохраняют или закрывают файл, либо пытаются создать новый файл.

Отображайте имя файла в заголовке окна точно в таком же виде, в каком оно представлено в файловой системе, в том числе с учетом использования символов верхнего и нижнего регистров.

Если имя отображаемого в окне объекта изменилось (например, после того как пользователь отредактирует его), необходимо отразить это изменение в заголовке окна. Всегда пытайтесь поддержать явную ассоциацию между объектом и откры­тым окном.

Когда ширина окна не позволяет отображать полностью название объекта, мож­но его сократить, однако это следует делать таким образом, чтобы сохранить су­щественную информацию, которая позволяет пользователю быстро идентифици­ровать окно.

Избегайте включения в полосу заголовка рисунков либо дополнительных эле­ментов управления. Такие дополнительные элементы могут затруднить восприятие имени окна, особенно в тех случаях, когда размер заголовка изменяется вместе с изменением размера окна. Кроме того, система использует эту область для отобра­жения специальных средств управления. Например, в некоторых локализованных версиях Windows в полосе заголовка выводится информация или элементы управ­ления, связанные с использованием определенных языков.

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

Таблица 4.1

Кнопки управления первичным окном

Кнопка

Команда

Выполняемые действия

Закрыть (Close)

Закрывает окно

Свернуть (Minimize)

Сворачивает окно

Развернуть (Maximize)

Устанавливает максимальный (полноэкранный) размер окна

Восстановить (Restore)

Устанавливает номинальный размер окна

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

Система не поддерживает для первичных окон использование кнопки вызова контекстно-зависимой справочной информации (Help), доступной во вторичных окнах. Если вы считаете, что ее наличие необходимо, можно включить кнопку Help в состав панели инструментов первичного окна. С другой стороны, не рекомендует­ся вставлять указанные выше кнопки управления (Развернуть, Свернуть, Восстановить) в полосу заголовка вторичных окон, поскольку соответствующие им команды не поддерживаются системой для этих окон.

Отображая кнопки управления первичного окна, используйте следующие руководящие принципы:

• Если команда не поддерживается окном, не отображайте соответствующую ей кнопку.

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

• Кнопка Свернуть должна предшествовать кнопке Развернуть.

• Кнопка Восстановить всегда заменяет кнопку Развернуть или кнопку Свернуть после выполнения соответствующей команды.

Когда пользователь открывает новое первичное окно, для него на Панели задач созда­ется кнопка входа. Эта кнопка предоставляет пользователю доступ к командам соответ­ствующего окна и обеспечивает переключение на это окно после работы с каким-либо другим из открытых окон. Размер кнопок входа на Панели задач регулируется автомати­чески таким образом, чтобы разместить на ней по возможности кнопки для всех откры­тых окон. Если при этом размер кнопки оказывается слишком мал, чтобы уместить пол­ное название окна, для нее автоматически создается всплывающая подсказка (как показано на рис. 4.7), которая отображает полное название первичного окна.

Когда окно сворачивается, его кнопка входа по-прежнему остается на Панели задач; она удаляется только в том случае, если пользователь закрывает окно.

Рис. 4.7. Всплывающая подсказка для кнопки входа

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

4.2.2. ОСНОВНЫЕ ОПЕРАЦИИ С ОКНАМИ

К основным операциям с окнами относятся: изменение состояния (активно/ неактивно), открытие и закрытие, перемещение, изменение размера, прокрутка, разбиение.

Изменение состояния окна

Если даже система поддерживает многооконность, пользователь, тем не менее, обыч­но выполняет некоторую последовательность действий в пределах одного окна. Это окно называется активным. Активное окно, как правило, является окном самого верхнего уровня (т.е. расположено «поверх» других открытых окон). Визуально оно отличается своим заголовком, который подсвечивается специальным «активным» цветом. В каждый момент времени может быть активным только одно окно. Хотя Другие окна могут относиться к активным (выполняющимся) процессам, но только одно — активное — окно способно воспринимать информацию (команды или дан­ные), вводимую пользователем. Заголовок неактивного окна отображается систем­ным «неактивным» цветом (при необходимости приложение может запросить уста­новленные системные цвета заголовка для активного и неактивного окна).

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

 При работе с клавиатурой для переключения между первичными окнами ис­пользуется комбинация клавиш <Alt>+<Tab>. Комбинация клавиш <Shift>+<Alt>+<Tab> также обеспечивает переключение между окнами, но в об­ратном порядке (для переключения между окнами система также поддерживает комбинацию <Alt>+<Esc>). Повторная активизация окна не должна влиять на лю­бой предшествующий выбор в пределах этого окна; другими словами, при активи­зации окна область выбора и фокус ввода восстанавливаются в том же виде, какой они имели в предыдущем активном состоянии. Кроме того, при повторной активизации первичного окна само окно и все связанные с ним вторичные окна становятся окнами верхнего уровня, причем восстанавливается их взаимное расположение.

Когда окно становится неактивным, уберите визуальное отображение выбора в пределах этого окна, чтобы явно указать, какое именно окно получает данные, вво­димые с клавиатуры. Исключением является выполнение операций прямого мани­пулирования (например, копирования объекта из одного окна в другое). В этом случае можно восстановить визуальное отображение выбора в окне-получателе на то время, пока указатель находится над окном (т.е. в течение выполнения операции прямого манипулирования).

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

Открытие и закрытие окон

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

Пользователь закрывает первичное окно, нажимая кнопку Закрыть в заголовке окна или выбирая команду Закрыть из всплывающее меню окна. Хотя система поддерживает двойной щелчок мышью на пиктограмме заголовка окна как ускоренный способ закрытия окна (для совместимости с предшествующи­ми версиями Windows), старайтесь избегать использования этой операции в качестве основного способа закрытия первичного окна.

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

Таблица 4.2.

Действия при повторном выполнении операции Открыть

Тип файла

Действие при повторном выполнении операции Открыть

Документ или файл данных

Активизируется существующее окно объекта, которое отображается поверх других открытых окон

Файл приложения

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

Файл, который уже открыт в окне MDI-приложения

Активизируется существующее окно файла; при этом содержащее его родительское окно MDI-приложения отображается поверх других окон

Файл еще не открыт, но связанное с ним MDI-приложение уже загружено (открыто)

Открывается новый экземпляр связанного MDI-приложения (поверх других окон) и в родительском окне отображается дочернее окно для данного файла. В качестве альтернативного варианта дополнительно может выводиться сообщение о том, что открытое окно этого приложения уже существует и пользователю предлагается выбор: использовать существующее окно или открыть новое родительское окно

Закрывая первичное окно, закройте также все его подчиненные вторичные окна. При разработке приложения определите, что закрытие первичного окна означает также завершение работы приложения и всех связанных с ним процессов. Напри­мер, закрытие окна текстового документа, как правило, вызывает завершение про­цессов, связанных с вводом новой информации в документ или с его форматирова­нием. Тем не менее, закрытие окна принтера не должно приводить к удалению заданий из очереди.

Перемещение окон

Пользователь может переместить окно, либо установив указатель мыши на по­лосу заголовка окна, либо используя команду Переместить из всплывающего меню этого окна. В большинстве конфигураций ОС Windows вместе с указателем переме­щается только структурированное представление окна (его контуры), а полное изоб­ражение окна восстанавливается в новой позиции после завершения перемещения.

При выборе команды Переместить пользователь может переместить окно с по­мощью клавиатуры, используя клавиши управления курсором и нажимая клавишу <Enter>, чтобы закончить операцию и установить новую позицию окна. Никогда не разрешайте пользователю переместить окно так, чтобы оно стало недоступно.

Никакое другое окно не должно стать активным прежде, чем пользователь завер­шит перемещение данного окна. Перемещение окна подразумевает его активизацию.

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

Изменение размеров окна

Предоставьте пользователю возможность изменять размеры первичного окна, если информация, отображенная в окне, не должна фиксироваться (как, например, в стан­дартной программе Калькулятор ОС Windows). Система поддерживает различные соглашения, которые обеспечивают изменение размеров окна пользователем.

Калибровка границ окна

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

Используя клавиатуру, пользователь может корректировать размер окна, выб­рав команду Размер и, используя клавиши перемещения курсора; нажатие клавиши <Enter> означает завершение операции.

Никакое другое окно не должно стать активным прежде, чем пользователь за­вершит изменение размеров данного окна. Изменение размеров окна подразумева­ет его активизацию, и это окно остается активным после завершения операции.

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

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

Развертывание окна

Несмотря на то, что пользователь может непосредственно изменять размеры окна (в пределах установленных вами ограничений), команда Развернуть оптими­зирует выполнение этой операции. Включите эту команду в управляющее меню окна, а также выведите в виде соответствующей кнопки в полосе заголовка.

Расширение окна приводит к максимально возможному («оптимальному») увели­чению его размеров. По умолчанию максимальный размер устанавливается равным размеру экрана монитора (исключая пространство, используемое для вывода панели задач или инструментальной панели Рабочего стола). Для дочернего окна при исполь­зовании MDI максимальным размером является размер родительского окна. Но в не­которых случаях вы можете определить максимально допустимый размер и по-иному.

Когда пользователь расширяет окно, замените кнопку Развернуть кнопкой Вос­становить. Соответственно, в всплывающем меню окна сделайте недоступной команду Развернуть и, наоборот, разрешите использование команды Восстановить.

Сворачивание окна

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

При сворачивании первичного окна его кнопка входа остается на Панели задач. Для свернутого дочернего окна MDI-приложения создается кнопка входа, располо­женная в пределах его родительского окна (рис. 4.8).

Рис. 4.8. Кнопка входа для дочернего окна

Когда пользователь сворачивает окно, сделайте недоступной в меню окна команду Свернуть и разрешите использование команды Восстановить.

Восстановление окна

Команда Восстановить обеспечивает восстановление предшествующего раз­мера окна и его расположение на экране после того, как пользователь разворачивал или сворачивал окно. Данная команда должна быть доступна в меню окна для развернутых окон; в полосе заголовка окна кнопка Восстановить заменяет кнопку Развернуть.

Для свернутых окон команда Восстановить также должна быть доступна в меню окна.

Пользователь может восстановить свернутое первичное окно до его прежнего размера и в предыдущую позицию, либо щелкнув ЛКМ на кнопке входа в окно на Панели задач, либо выбрав команду Восстановить в меню окна, либо используя комбинацию клавиш <Alt>+<Tab> (или <Shift>+<Alt>+<Tab>).

Регулятор окна

При создании масштабируемого окна вы можете включить в его состав специ­альную графическую область, используемую для пропорционального изменения окна по обоим измерениям (регулятор). Установив указатель мыши на регулятор и нажав ее левую кнопку, пользователь может изменять размер окна по обоим изме­рениям, перемещая указатель в нужном направлении. Наличие регулятора не ис­ключает возможность масштабирования окна путем перемещения его границ (то есть по каждому измерению в отдельности).

Всегда располагайте регулятор в правом нижнем углу окна. Обычно эта позиция совпадает с правым концом горизонтальной полосы прокрутки или с нижним кон­цом вертикальной полосы прокрутки. Если окно содержит строку состояния, ото­бразите регулятор окна в крайней правой позиции этой строки. Никогда не отобра­жайте регулятор в двух позициях окна одновременно.

Прокрутка окна

В том случае, когда выводимая в окне информация превышает размер этого окна, оно должно поддерживать возможность прокрутки. Прокрутка дает пользователю возможность просматривать части объекта, которые в настоящий момент времени не видны в окне. Эта функция обычно реализуется с помощью полос прокрутки. Полоса прокрутки представляет собой прямоугольную область, содержащую стрел­ки, которые указывают разрешенное направление прокрутки, и ползунок, величина и положение которого отражают размер невидимой части объекта. Как стрелки, так и ползунок являются интерактивными элементами (то есть они реагируют на воздействие пользователя). Стрелка полосы прокрутки представляет собой кнопку, при нажатии которой информация в окне перемещается в соответствующем направлении на одну дискету; величина шага прокрутки устанавливается разработчиком приложения.

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

Практика показывает, что для тех окон, где может потребоваться перемещение информации, полосы прокрутки должны отображаться всегда, даже если окно становится неактивным или выводимая информация не требует прокрутки. Это обусловлено следующими обстоятельствами. Удаляя полосы прокрутки, когда окно становится неактивным, вы увеличиваете свободное пространство окна. Тем самым вы изменяете рациональное соотношение между размерами окна и объемом отображаемой информации. Кроме того, в этом случае пользователь вынужден явно активизировать окно, прежде чем выполнить прокрутку. И, наконец, последовательность в отображении полос прокрутки, обеспечивает большую стабильность рабочей среды пользователя.

Подробнее техника использования полос прокрутки рассматривается в разделе «Элементы управления».

Автоматическая прокрутка

Перемещение информации в окне с помощью полос прокрутки предполагает яв­ное указание пользователя на необходимость прокрутки. Вместе с тем, прокрутка может также быть обусловлена каким-либо другим действием пользователя. Такой тип прокрутки называется автоматической прокруткой. Целесообразно поддержи­вать автоматическую прокрутку в следующих ситуациях:

• Когда пользователь формирует непрерывную область выбора и в нее должны быть включены объекты, не видимые в данный момент в окне;

• Когда пользователь перемещает объект и достигает края видимой области, но хочет продолжить перемещение;

• Когда пользователь вводит текст с клавиатуры в крайнюю позицию окна, либо перемещает или копирует объект в такую позицию;

• Если выполнение операции заканчивается изменением текущей активной позиции (например, перемещением границы области выбора или фокуса ввода) и новая позиция находится за пределами видимой области. Например, при выполнении операции Найти следует сделать видимым фрагмент документа, содержащий найденный объект.

Автоматическую прокрутку могут вызвать и другие виды навигации. Напри­мер, при заполнении экранной формы завершение ввода информации в одном поле может потребовать переход к другому полю. В том случае, если новая область ввода не видима, форма может быть соответствующим образом перемещена.

Клавиатурная прокрутка

Для выполнения операции прокрутки с помощью клавиатуры используются клавиши навигации. Когда пользователь нажимает клавишу навигации, курсор переходит на соответствующую позицию. Дополнительно к перемещению курсора, нажатие любой из этих клавиш может приводить к перемещению отображаемой области в соответствующем направлении. В свою очередь, использование клавиш <PgUp> и <PgDn> аналогично щелчку ЛКМ в чувствительной области полосы прокрутки.

4.2.3. ИСПОЛЬЗОВАНИЕ ПОДОКОН

Окно может разделяться на две или более относительно независимые области, которые называются подокнами. Разделение окна позволяет пользователю, например, просматривать одновременно две части одного документа. Технологию разде­ления окна можно также использовать для того, чтобы отобразить одну и ту же информацию в различной форме (рис. 4.9).

Рис. 4.9. Окно, разделенное на подокна

Если же наоборот, необходимо одновременно получить доступ к нескольким файлам в рамках выполнения одного задания, следует использовать другую техни­ку управления окнами, например, MDI.

Разбиение окна на подокна может быть установлено либо разработчиком приложения (как основная форма окна), либо пользователем, посредством задания соот­ветствующего параметра. Для того чтобы поддерживать разбиение окна, которое не определено заранее, включите в состав создаваемой программы так называемый блок разделения. Блок разделения является специальным элементом управления, кото­рый отображается в конце полосы прокрутки окна и обозначает регулируемую грани­цу между подокнами. Размер блока разделения должен быть достаточно большим, чтобы пользователь мог работать с ним, используя указатель мыши.

Пользователь может изменять размеры подокон, перемещая блок разделения в нужную позицию. Когда указатель мыши находится над блоком разделения, целе­сообразно изменить его образ, чтобы обеспечить обратную связь и помочь пользо­вателю правильно установить блок разделения. С той же целью рекомендуется ото­бражать контуры перемещаемого блока разделения и полосы разделения (границы подокон) до тех пор, пока пользователь не закончит операцию (рис. 4.10).

Рис. 4.10. Перемещение границы подокон

Вы можете разрешить перемещение полосы разделения (или блока разделения) в конец полосы прокрутки. При этом одно из подокон окажется закрытым. Допол­нительно вы можете определить двойной щелчок ЛКМ в некоторой позиции, за­данной по умолчанию (например, в середине окна) как ускоренный способ разбие­ния окна или для удаления разделения. Такой способ наиболее удобен в тех случаях, когда результирующие подокна должны быть одного размера.

Для того, чтобы обеспечить клавиатурный интерфейс для разбиения окна, включите во всплывающем меню окна (или в раздел меню View) команду Разде­лить. Когда пользователь выбирает эту команду, разделите окно посередине или в контекстно-определенной позиции.

Для перемещения блока разделения могут быть использованы клавиши управ­ления курсором; нажатие клавиши <Enter> устанавливает разделение в текущей позиции, а нажатие клавиши <Esc> отменяет режим разделения.

Для разделения окна могут применяться и другие средства. Например, вы може­те определить специальные режимы отображения окна, которые позволяют пользо­вателю выбирать фиксированное или изменяемое расположение подокон, либо удалять разделение окна, закрывая подокно (или используя какую-либо другую команду управления форматом окна).

Когда пользователь разделяет окно, дополните его полосами прокрутки для тех подокон, которые этого требуют. Кроме того, следует разместить информацию в подо­кнах таким образом, чтобы полоса разделения не закрывала содержимое окна, над ко­торым она появляется. Используйте одну общую полосу прокрутки для тех подокон, которые перемещаются вместе; если же каждое из подокон требует независимую про­крутку, полоса прокрутки должна создаваться в каждом из них. Например, если основ­ное окно разделено на подокна по горизонтали, то, очевидно, каждое из них должно иметь собственную вертикальную полосу прокрутки, управляемую отдельно.

При использовании подокон каждое из них должно иметь собственные значения атрибутов, таких, например, как тип шрифта и состояние выбора. При этом область выбора следует отображать только в активном подокне. Тем не менее, если состояние выбора распространяется через подокна, отобразите выбор во всех подокнах.

Когда основное окно закрывается пользователем, запомните состояние подокон (количество, расположение, отображаемая информация, состояние выбора) как часть информации о состоянии этого окна, с тем, чтобы оно могло быть восстанов­лено при следующем открытии в том же виде.

4.2.4. МНОГОДОКУМЕНТНЫЙ ИНТЕРФЕЙС (MDI)

В процессе работы с одним и тем же приложением пользователю может потребоваться иметь на экране несколько открытых окон, содержащих информацию различных типов, либо представляющих собой разное изображение одних и тех же данных.

Для создания таких окон и управления ими существует специальная технология — многодокументный интерфейс, сокращенно MDI (Multiple Document Interface). В этом разделе описаны особенности её применения с точки зрения реализации пользовательского интерфейса.

СТАНДАРТНАЯ РЕАЛИЗАЦИЯ MDI

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

Некоторые типы объектов, например, устройства, могут даже не требовать со здания собственного первичного окна и использовать только вторичное окно для просмотра и редактирования их свойств. В очень редких случаях единственным средством визуального представления объекта является его пиктограмма.

Вместе с тем, для выполнения некоторых заданий может оказаться недостаточным наличие одного первичного окна. В таких ситуациях работа приложения должна быть построена на основе многодокументного интерфейса.

Техника MDI заключается в использовании одного первичного окна, называемого родительским окном, которое может содержать набор связанных с ним дочерних окон (рис. 4.11). Каждое дочернее окно — это, по существу, также первичное окно, единственным ограничением для которого является то, что оно может появиться только в пределах родительского окна. Родительское окно обеспечивает как визуальное, так и «операционное» пространство для своих дочерних окон. Например, на дочернее окно обычно распространяется область действия меню родительского окна и, возможно, других элементов его интерфейса (панели инструментов, строки состояния и т.д.). Их вид может изменяться, если необходимо отразить команды и атрибуты активного дочернего окна.

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

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


Рис. 4.11. Родительское и дочерние окна MDI

Как для родительского окна, так и для всех его дочерних окон должны поддерживаться всплывающие меню; перечень команд в таком меню аналогичен рассмотренному выше применительно к первичным окнам.

Пользователь может активизировать MDI-приложение либо непосредственно открыв его, либо открыв документ (файл данных) того типа, который поддерживается этим приложением. Если MDI-приложение активизировано посредством открытия документа, сначала открывается родительское окно, а затем внутри его рабочей области — дочернее окно, отображающее выбранный документ или файл. Для того, чтобы упростить пользователю открытие других документов, связанных с этим приложением, включите в его интерфейс диалоговую панель ОТКРЫТЬ.

В том случае, когда пользователь непосредственно открывает документ за пределам и родительского окна MDI-приложения (например, с помощью двойного щелчка ЛКМ на пиктограмме файла), то если родительское окно уже открыто, следует создать второй экземпляр приложения (т. е. еще одно родительское окно), а не окно документа (дочернее) в существующем родительском окне. Хотя открытие нового дочернего окна может быть более эффективным, его появление может нарушить среду задания, уже установленную в этом родительском окне. Например, если вновь открытый файл является макросом, его открытие в уже открытом родительском окне может повлиять на другие документы, открытые в этом окне. Чтобы пользователь мог открыть файл в конкретном родительском окне, следует определить команды, поддерживающие такую возможность.

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

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

Когда пользователь закрывает родительское окно, закройте все его дочерино окна. Где возможно, сохраняйте состояние дочернего окна (размер и положение внутри родительского окна) и восстанавливайте это состояние, когда пользователь вновь открывает окно.

MDI позволяет пользователю перемещать или сворачивать дочернее окно таким же образом, как и родительское окно. Когда пользователь перемещает родительское окно, сохраните относительные позиции открытых дочерних окон в рабочей области родительского окна. Перемещение дочернего окна ограничивается размерами его родительского окна; в некоторых случаях это может привести к усечению дочернего окна (рис. 4.12). В связи с этим дополнительно может быть определена возможность автоматического изменения размеров родительского окна при перемещении или изменении размеров дочернего окна.

Рис. 4.12. Свёрнутое и смещённое дочерние окна

Рекомендуемая форма отображения минимизированного дочернего окна в MS Windows — часть полосы заголовка окна, окруженная рамкой. Это позволяет избежать возможной путаницы между пиктограммами минимизированных дочерних окон и пиктограммами, представляющими объекты.

Хотя свернутое родительское окно представляется кнопкой входа в окно на Панели задач, свернутое дочернее окно располагается в пределах своего родительского окна, как показано на рис. 4.12.

Когда пользователь разворачивает родительское окно, оно должно приобретать свой максимальный (полноэкранный) размер, подобно любому другому первичному окну. Это же правило должно выполняться и для дочернего окна. Если его полноэкранный размер превышает размер родительского окна, объедините дочернее окно с родительским. При этом пиктограмма заголовка дочернего окна, кнопки Восстановить, Закрыть, и Свернуть (если они поддерживаются) должны располагаться в полосе меню родительского окна в тех же позициях, в которых они находились в полосе заголовка дочернего окна (рис. 4.13). Кроме того, текст названия дочернего окна добавляется к заголовку родительского окна.

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

Рис. 4.13. Развёрнутое дочернее окно

Для активизации дочерних окон и навигации между ними с помощью мыши используются те же общие соглашения, что и для первичных окон. Для быстрого клавиатурного доступа и переключения между дочерними окнами рекомендуется использовать комбинации клавиш <Ctrl>+F6 и <Ctrl>+<Tab> (и <Shift>+ модифицирующая комбинация для циклического повторения). Кроме того, целесообразно включить в меню Окно родительского окна команды для переключения между дочерними окнами и команды управления размещением окон в пределах родительского окна (например, Мозаикой или Каскадом).

Когда пользователь переключается на дочернее окно, приложение может изменить интерфейс родительского окна, например, видоизменить меню, панель инструментов или строку состояния, чтобы отразить перечень действии, применимых к этому дочернему окну. Тем не менее, старайтесь обеспечить согласованность между интерфейсом родительского и дочерних окон, в частности, сохраните неизменными меню, которые обеспечивают работу с файлами и управление приложением или общей средой родительской окна (например, меню Файл или меню Окно).

АЛЬТЕРНАТИВНЫЙ ПОДХОД К РЕАЛИЗАЦИИ MDI

Технология MDI имеет свои ограничения. В частности, MDI-приложенпе постоянно находится в центре внимания пользователя, нарушая тем самым принцип работы, управляемой данными. Имеется в виду следующее. Хотя пользователь может запустить приложение MDI непосредственно открытием одного из своих документов или файлов данных, тем не менее чтобы работать с несколькими документами в одном и том же родительском окне, он должен использовать интерфейс приложения для открытия этих документов.

Когда пользователь открывает несколько файлов в пределах одного родительского окна, нарушается согласованность связи между дочерними окнами и между отображаемыми в них объектами. Несогласованность заключается в том, что хотя родительское окно визуально объединяет дочерние окна (как бы играет роль контейнера), это не приводит к аналогичному объединению отображаемых файлов. Это делает отношения между файлами и их окнами более абстрактными, затрудняя уяснение принципов MDI начинающими пользователями.

Вследствие того, что родительское окно в действительности не содержит объекты, представленные в дочерних окнах, технология MDI не может обеспечить эффект непрерывной работы пользователя. Речь идет о том, что когда пользователь закрывает родительское окно и затем вновь открывает его, созданная ранее рабочая среда не восстанавливается и пользователь вынужден вновь выполнять операции, связанные с открытием файлов, с. которым он работал в последний раз.

Необходимо также иметь в виду, что технология MDI может усложнить некоторые аспекты использования OLE. Например, если пользователь открывает текстовый документ в MDI-приложении и затем открывает (с помощью другого приложения) электронную таблицу, вставленную н этот текстовый документ, то визуальная связь между текстовым документом и таблицей нарушается, поскольку окно с электронной таблицей не становится дочерним для того же родительского окна MUI.

И, наконец, еще одно обстоятельство. Ограничения, налагаемые технологией MDI на размещение дочерних окон в родительском окне, могут оказаться критичными для некоторых заданий, например, при проектировании окон или выборе формата инструментальных средств. Кроме того, иногда пользователь может не отличить дочерние окна, «вложенные» в родительское окно, от первичных окон, расположенных поверх него.

Перечисленные недостатки МDI могут быть в значительной степени преодолены за счет применения альтернативных средств, таких как Рабочие области (Workspaces), Рабочие книги (Workbooks) и Проекты (Projects). Хотя эти средства реализуют однооконную модель интерфейса, тем не менее они обнаруживают целый ряд достоинств, присущих технологии MDI. В частности, с их помощью можно получить различные формы представления одних и тех же данных. Эти средства обеспечивают также большую гибкость относительно включаемых в них типов объектов. Тем не менее, как и любой контейнер, они могут быть настроены на хране­ние и управление только определенным типом объектов.

Рассмотренные ниже примеры только иллюстрируют некоторые альтернативные подходы к реализации MDI-технологин и не исключают подложности использования других подходов. Кроме того, здесь опущены некоторое специфические детали, реализация которых зависит от разработчика приложения.

РАБОЧАЯ ОБЛАСТЬ

Рабочая область обладает многими характеристиками MDI, в том числе возможностью управления набором взаимосвязанных окон, отображаемых в пределах родительского окна, а также использования ими элементов интерфейса родительского окна, таких как меню, панель инструментов и строка состояния (рис. 4.14).

Использование Рабочей области в качестве контейнера

Основное отличие Рабочей области от MDI заключается в использовании концепции объединения отображаемых объектов. Это означает, что объекты, отображаемые в Рабочей области, могут соответствовать файлам, содержащимся в одном и том же контейнере. Внешне же соответствующие им окна выглядят как дочерние окна, расположенные в пределах родительского окна. Таким образом, концепция

Рис. 4.14. Пример Рабочей области

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

В настоящее время реализация механизма хранения объектов зависит от типа используемого контейнера. Содержимое родительского окна может представлять либо единственный файл, либо вы можете разработать ваш собственный механизм, позволяющий отобразить содержимое файловой системы. Продумайте возможность использования технологии OLE, чтобы облегчить взаимодействие между вашей Рабочей областью, оболочкой и другими приложениями. Предоставьте пользователю возможность перемещать объекты из Рабочей области в другие контейнеры, например, на Рабочий стол или в произвольный каталог. Вместе с тем, пользователь должен иметь возможность открыть объект в его индивидуальном окне, не входящем в окно Рабочей области и обладающем собственным интерфейсом.

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

Использование Рабочей области для группирования заданий

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

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

Управление окнами в Рабочей области

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

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

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

РАБОЧАЯ КНИГА

Рабочая книга — это еще один альтернативный вариант управления формой представления отображаемых данных, в основе которого лежит метафора книги или записной книжки. В Рабочей книге различные формы данных представляются как отдельные разделы в пределах одного первичного окна. Рис. 4.15 иллюстрирует один из возможных способов реализации Рабочей книги.

В качестве средства навигации между разделами Рабочей книги могут использоваться этикетки вкладок, которые будут подробнее описаны в главе 5. Их расположение в Рабочей книге определяется разработчиком приложения в зависимости от содержания

Рис. 4.15. Пример Рабочей книги

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

Для Рабочей книги действительны те же соглашения, которые регламентируют взаимосвязь родительского и дочерних окон в MDI-приложении. В частности, разделы могут использовать элементы интерфейса родительского окна, например, меню и строку состояния. Когда пользователь переключает разделы, меню может изменяться таким образом, чтобы в наибольшей степени соответствовать текущему объекту. Если пользователь закрывает Рабочую книгу, должны соблюдаться общие правила обработки не сохраненных изменений, в том числе должна существовать возможность их отмены.

Целесообразно также поддержать для Рабочей книги технологию OLE, чтобы обеспечить возможность выполнения операций пересылки, копирования и связывания объектов. Может быть также реализована команда Поместить (Insert), чтобы разрешить пользователю создавать новые объекты, в том числе новые разделы Рабочей книги. И, наконец, для Рабочей книги, как и для Рабочей области, применима команда Сохранить все, которая сохраняет перед закрытием книги внесенные изменения или уточняет у пользователя, нужно ли эти изменения сохранить или отвергнуть.

ПРОЕКТ

Пpoeкт peализует ещё один альтернативный способ управления окном, который предусматривает возможность отображения в одном окне взаимосвязанных объектов, представленных их пиктограммами. В этом смысле Проект подобен каталогу: для выбранного объекта открывается окно, которое относится к тому же уровню, что и родительское окно. В результате, каждое дочернее окно Проекта может также иметь собственную кнопку входа на Панели задач. В отличие от каталога, Проект обеспечивает управление из родительского окна окнами входящих в него объектов. Например, когда пользователь, открыв документ, закрывает окно каталога, это никак не отражается на окне открытого документа. И напротив, когда пользователь закрывает окно Проекта, все окна его объектов также закрываются. Кроме того, когда пользователь открывает окно Проекта, это действие должно восстанавливать окна объектов в их предшествующем состоянии.

Рис. 4.16. Пример Проекта

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

По аналогии с Рабочей областью и Рабочей книгой, Проект должен иметь команды для создания новыx объектов, для их пересылки в Проект и из него, а также для сохранения любых изменений объектов, входящих в Проект. Кроме того, окно Проекта должно содержать средства для работы с самим Проектом как с объектом (в том числе для изменения его свойств).

4.2.5. ВЫБОР МОДЕЛИ ОКНА

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

В частности, форма представления объекта зависит от способа его использования и взаимосвязи с другими объектами. Простые объекты, которые являются «самодостаточными», обычно не требуют создания собственного первичногo окна; средства взаимодействия пользователя с ними могут быть ограничены набором команд меню и использованием напели свойств. Примером объекта такого типа может служить кнопка.

Информация в лекции "15. Проектирование нечетких регуляторов" поможет Вам.

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

В тех случаях, когда структура объекта требует представления его одновременно в нескольких видах, или когда пользователю необходимо работать одновременно с несколькими объектами, более эффективным является применение технологии MDI, либо использование Рабочих областей, Рабочих книг и Проектов. Эти конструкции обеспечивают формирование рабочей среды пользователя, ориентированной на выполнение определенного задания. При этом технология MDI является наиболее подходящей для работы с несколькими однотипными объектами, а использование Рабочих книг позволяет оптимизировать навигацию пользователя между различными представлениями одного объекта. Недостатком Рабочей книги можно считать то, что та ограничивает способность пользователя видеть одновременно несколько представлений объекта. Рабочие области и Проекты обеспечивают более гибкую технику для просмотра и совмещения объектов и их окон. Используйте Рабочую область в тех случаях, когда пользователю может потребоваться сгруппировать пиктограммы объектов (или их окна), используемые при выполнении некоторого задания. Применение Проекта позволяет снять ограничения на расположение и формат дочерних окон. Вместе с тем, это преимущество достигается за счет увеличения сложности работы пользователя; кроме того, пользователю бывает весьма сложно отличить дочерние окна Проекта от окон других активных приложений.

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

MDI, Рабочие области, Рабочие книги и Проекты допускают возможность совестного использования некоторых компонентов интерфейса несколькими окнами. В связи с этим пользователю всегда должно быть ясно, когда и в каком окне доступен конкретный элемент интерфейса. Хотя вы можете предусмотреть автоматическую коррекцию содержимого таких компонентов, как меню или строка состояния, тем не менее следует учитывать необходимость поддержания согласованности интерфейса в части использования общих функций. Например, если во всех дочерних окнах предусмотрена команда Печать, то соответствующая ей кнопка должна в них находиться в одной и той же позиции. Несоблюдение этого правила может существенно снизить эффективность работы пользователя. Необходимо так се иметь в виду, что наличие общих элементов интерфейса, усложняет его настройку при переключении пользователя с одного окна на другое.

Независимо от выбранной модели окна следует всегда разрешать пользователям индивидуальную настройку интерфейса, хотя бы на уровне «скрыть/отобразить» тот или иной элемент интерфейса. Однако при этом необходимо предусмотреть возможность альтернативного доступа пользователя к той функции, которая вязана со скрытым элементом (например, с помощью всплывающего меню).

Необходимо еще раз отметить, что использование одного первичного окна, применение MDI Рабочих областей, Рабочих книг и Проектов не являются взаимоисключающими вариантами реализации пользовательского интерфейса приложения. Как и во многих других областях человеческой деятельности, наиболее аффективными оказываются, как правило, компромиссные решения. Например, рабочая книга и Проект могут быть реализованы как объекты, отображаемые в одной Рабочей области; аналогично, Проект может включать Рабочую книгу в качестве одного из своих объектов.

Свежие статьи
Популярно сейчас
А знаете ли Вы, что из года в год задания практически не меняются? Математика, преподаваемая в учебных заведениях, никак не менялась минимум 30 лет. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
5160
Авторов
на СтудИзбе
439
Средний доход
с одного платного файла
Обучение Подробнее