Реферат по предмету "Информатика, программирование"


Основные принципы разработки графического пользовательского интерфейса

Оглавление
Введение
Правила проектированияпользовательского интерфейса
Правило 1: датьконтроль пользователю
Правило 2:уменьшить нагрузку на пользователя
Правило 3: сделатьинтерфейс совместимым
Руководящие принципы
Программа «Tidy Start Menu»
Заключение
Литература
Введение
«Золотое правило проектировщикагласит: „Никогда не делай другим того, что они сделали тебе“.Вспомните, что вам не нравится в программном обеспечении, которым выпользуетесь. И не делайте того же самого в программе, над которойработаете.»
Трэйси Леонард Почему надо следоватьпринципам построения пользовательского интерфейса?
Программное обеспечение должно разрабатываться с учетомтребований и пожеланий пользователя — система должна подстраиваться кпользователю. Вот почему принципы проектирования столь важны.
Пользователи компьютера могут иметьудачный опыт, который внушит им уверенность в своих силах и укрепит высокуюсамооценку при работе с компьютером. Их действия с компьютером могут бытьохарактеризованы как «успех порождает успех». Каждый позитивный опытобщения с программой позволяет пользователю расширять область знакомства спрограммным обеспечением и повышать свой уровень компетентности. Хорошопродуманный интерфейс, подобно хорошему учителю и учебникам, обеспечиваетплодотворное взаимодействие пользователя и компьютера. Удачные интерфейсы дажеспособны помочь человеку выйти из привычного круга программ, которыми онпользуется, и открыть новые, углубить понимание работы интерфейсов и компьютеров.
Принципы разработки интерфейса — это высокоуровневыеконцепции и представления, которые могут использоваться при проектированиипрограммного обеспечения. Нужно определить, какой из принципов наиболее важен иприемлем для вашей системы.
Приступая к проектированию, необходимо выделить важнейшийпринцип, который будет определяющим при поиске компромиссов. Попытка соблюстивсе принципы проектирования может привести к тому, что в некоторых ситуацияхэто не оправдает себя и отрицательно скажется на конечном результате. Принципы— это руководство к действию.
Три принципа разработки пользовательского интерфейсаформулируются так:
1)контроль пользователем интерфейса;
2)уменьшение загрузки памяти пользователя;
3)последовательность пользовательского интерфейса.Гденайти принципы разработки пользовательского интерфейса
Хансен представил первый список принципов проектирования[2].Принципы таковы:
1)знать пользователя;
2)сократить запоминание;
3)оптимизировать операции;
4)устранить ошибки.
Многие крупные производители операционных систем, выпусти нарынок свои новые продукты, публикуют соответствующие руководства и инструкции.В этих изданиях раскрываются принципы подхода к проектированию интерфейса.Руководства выпускали Apple Computer, Inc. (1992), IBM Corporation (1992),Microsoft Corporation (1995) и UNIX OSF/Motif (1993).
Читатели могут использовать названные публикации как пособиепри обучении. Терминология по интерфейсу в разных руководствах можетотличаться, но адресация материала, уровень сложности и описанные принципыпользовательского интерфейса едины для всех книг.Важностьсоблюдения принципов
«Несовместимость интерфейса может стоить большойкомпании миллионов долларов убытка из-за потери продуктивности и увеличениястоимости технической поддержки.» — Джесси Брист.
Эти принципы применимы ко всему программному и аппаратномуобеспечению, во всех типах и стилях интерфейсов. Вырабатывались они напротяжении довольно длительного времени: производились изыскания в областипрограммного интерфейса, осуществлялись разработки, опрашивались пользователимногих компьютерных платформ, в том числе Macintosh и PC.
Данные принципы выдержали проверку временем и появлениемновых компьютерных технологий. Якоб Нильсен заметил: «Принципы останутсяосновополагающими даже если программа будет иметь футуристичный трехмерныйдизайн с печаткой „DataGlove“, служащей для ввода, будутраспознаваться движения и „живые“ видеоизображения. Они будутактуальны, поскольку выражают основную идею диалога с машиной при помощи команд»[8].
Трактовка этих принципов будет зависеть от аппаратногообеспечения, операционной системы, составляющих пользовательского интерфейса иего задач. Зачастую деловое решение довлеет над использованием принциповпроектировщиками. Пользовательские модели и модели проектировщика такжеразличны и влияют на то, как будут применяться принципы. На некоторых важныхэтапах разработки проекта может встать вопрос: «Что произойдет далее?».Ответ должен быть таким: «Что захочет пользователь!».
Решение о выборе оптимальных принципов построения интерфейсадолжно вырабатываться совместно всеми членами команды по проектированию. Этирешения должны способствовать улучшению покупаемости и развитию программныхпродуктов.
Правила проектированияпользовательского интерфейса
«Делай это проще, но не примитивнее.»
Альберт Эйнштейн Правило 1: дать контрольпользователю
Опытные проектировщики позволяют пользователям решатьнекоторые задачи по собственному усмотрению. Архитекторы по завершениистроительства сложного комплекса зданий должны проложить между ними дорожки дляпешеходов. Пока они не знают, в каком именно месте люди будут пересекать площадки.Поэтому дорожки никогда не прокладывают одновременно с возведением зданий. Наплощадках между домами помещаются таблички с надписью: «Пожалуйста ходитепо траве». Через некоторое время строители возвращаются и только теперь,согласно «волеизъявлению» населения, заливают протоптанные дорожки асфальтом.
Принципы, которые дают пользователю контроль над системой:
1)использовать режимы благоразумно;
2)предоставить пользователю возможность выбирать: работатьлибо мышью, либо клавиатурой, либо их комбинацией;
3)позволить пользователю сфокусировать внимание;
4)демонстрировать сообщения, которые помогут ему в работе;
5)создать условия для немедленных и обратимых действий, атакже обратной связи;
6)обеспечить соответствующие пути и выходы;
7)приспосабливайте систему к пользователям с различнымуровнем подготовки;
8)сделать пользовательский интерфейс более понятным;
9)дать пользователю возможность настраивать интерфейс посвоему вкусу;
10)разрешить пользователю напрямую манипулировать объектамиинтерфейса;Использовать режимы благоразумно
Режимы — не всегда плохо. Надо позволить человеку самомувыбирать нужные ему режимы. Интерфейс должен быть настолько естественным, чтобыпользователю было комфортно работать с ними. Пользователь не думает опереключении в режим вставка или перезаписи при работе в текстовом процессоре —это вполне рационально и естественно.Позволить человеку использовать мышьи клавиатуру
Возможность работы с клавиатурой использование клавиатурывместо мыши. Это значит, что пользователю будет легче работать, просто он либоне может ею пользоваться, либо ее у него нет. Панели инструментов созданы,чтобы ускорить работу при использовании мыши. Однако при работе с клавиатуройдо них нельзя добраться — для подобных случаев предусмотрены «выпадающие»меню.Позволить пользователю переключитьвнимание
Не вынуждать пользователей заканчивать выполнение начатыхпоследовательностей действий. Дать им выбор — аннулировать или сохранить данныеи вернутся туда, где они прервались. Пусть у пользователей останетсявозможность контролировать процесс работы в программе.Показывать поясняющие сообщения итексты
Во всем интерфейсе использовать понятные для пользователятермины. Они не обязаны знать о битах и байтах!
Следует выбрать правильный тон в сообщениях и приглашениях.не менее важно застраховаться от проблем и ошибок. Неудачная терминология и неправильный тон приведут к тому, что пользователи будут винить себя ввозникающих ошибках.Обеспечить немедленные и обратимыедействия и обратную связь
Каждый программный продукт должен включать в себя функцииUNDO и REDO. Необходимо информировать пользователя о том, что данное действиене может быть отменено, и по возможности разрешить ему альтернативное действие.Постоянно держать человека в курсе происходящего в данный момент.Предоставлять понятные пути и выходы
Пользователи должны получать удовольствие при работе синтерфейсом любого программного продукта. Даже интерфейсы, применяемые виндустрии, не должны пугать пользователя, он не должен боятся нажиматьсянажимать кнопки или переходить на другой экран. Вторжение Internet показало,что навигация — основная интерактивная техника в Internet. Если пользовательпонимает, как зайти на нужную страницу в WWW, то существует 80-процентнаявероятность, что он разберется в интерфейсе. Люди осваивают методы работы сбраузером очень быстро.Приспосабливаться к пользователям сразными уровнями навыков
Не «жертвовать» опытными пользователями во благообычных. Надо предусмотреть для них быстрый доступ к функциям программы. Неутомлять их прохождением многочисленных шагов для выполнения какого-либо действия,если они привыкли пользоваться одной макрокомандой.Сделать пользовательский интерфейс«прозрачным»
Пользовательский интерфейс — «мифическая» частьпрограммного продукта. При хорошем проекте пользователи даже не ощущают его«присутствия». Если он разработан неудачно, пользователям придетсяприложить даже немало усилий для эффективного использования программного продукта.Задача интерфейса — помочь людям почувствовать себя находящимся как бы«внутри» компьютера, свободно манипулировать и работать с объектами.Это и называется «прозрачным» интерфейсом!
«Прозрачность» интерфейса обеспечивается тем, чточеловеку будет дана возможность пользоваться объектами, отличными от системныхкоманд.Дать пользователю возможность настроитьинтерфейс на свой вкус
Секрет «прозрачного» интерфейса — в прямой связи сментальной моделью. Пользователь должен быть сосредоточен непосредственно навыполнении задач, стоящих перед ним, а не разбираться в функциях программы.
Представление функций в OS/2 и диалоговые окна для измененияфункциональных свойств в Windows 95 позволяют настраивать многие системныепредпочтения и объекты. Разработчики Windows 95 даже создали дополнительнуюутилиту — Tweak UI. Программные продукты должны использовать свойстваоперационной системы согласно другим приложениям. Однако все иные атрибутыпрограммного интерфейса, включая меню и кнопки, должны иметь функциюиндивидуальной настройки.Разрешить пользователю прямоеманипулирование объектами интерфейса
Пользователь начинает сомневаться в собственных силах, еслипрямые манипуляции с объектами не отвечают их ментальной модели и системепредставлений о взаимодействии с реальным миром. Простое правило: увеличиватьметафоричность, но не ломать ее. Иногда система прямых манипуляций терпит крах,если пользователь не знает, что надо взять и куда это поместить. Объекты должны«кричать» человеку пользователю: «схвати меня, отпусти меня,обращайся со мною, как с предметом, который я представляю!». Иначе человекне поймет, как работать с этим объектом. Единственная проблема прямыхманипуляций — визуально не понятно, может ли объект перемещен и отпущен наэкране. Пользователи должны чувствовать себя комфортно при производстве даннойоперации и знать о предполагаемом результате. Кроме того, необходимо, чтобыинтерфейс можно было без труда изучить.Позволить пользователю думать, что онконтролирует ситуацию
Хорошо разработанный интерфейс должен быть удобен дляпользователей и развлекать их, пока компьютер находится в состоянии загрузки.Людям не нравится сидеть около компьютера, ничего не делая, пока компьютерзанят «своими делами». Если нельзя дать пользователю контроль, тонеобходимо создать его иллюзию! Правило 2: уменьшитьнагрузку на пользователя
Основанная на знании того, как люди хранят и запоминаютинформацию, сила компьютерного интерфейса должна защитить память людей от излишнейзагруженности.
Принципы, позволяющие снизить нагрузку на памятьпользователя:
1)не загружать кратковременную память;
2)полагаться на распознавание, а не на повторение;
3)представить визуальные заставки;
4)предусмотреть установки по умолчанию, команды Undo и Rendo;
5)предусмотреть «быстрые» пути;
6)активировать синтаксис действий с объектами;
7)использовать метафоры из реального мира;
8)применять раскрытие и объяснение понятий и действий;
9)увеличить визуальную ясность.Не нагружать кратковременную память
Не вынуждать пользователей запоминать и повторять то, чтоможет (и должен) делать компьютер. Например, когда необходимо заполнить анкету,потребуется ввести некоторые данные — имя, адрес, телефонный номер, которыефиксируются системой для дальнейшего использования, при повторном входе пользователяв систему или открытия записи. Система должна «запоминать» введеннуюинформацию и обеспечить беспрепятственный доступ к ней в любое время.Полагаться на распознавание, а не наповторение
Предусмотреть списки и меню, содержащие объекты илидокументы, которые можно выбрать, не заставляя пользователей вводить информациювручную без поддержки системы. Почему люди должны запоминать, к примеру,аббревиатуру из двух букв для каждого штата США, когда они заполняют какуюнибудь анкету или форму? Не надо вынуждать их запоминать коды для дальнейшегоиспользования. Предусмотреть списки наиболее популярных объектов и документов,которые можно просто выбрать без заполнения командных строк и др.Обеспечить визуальные подсказки
Когда пользователи находятся в каком-то режиме или работаютмышью, это должно отразиться на экране. Индикация должна сообщать пользователюо режиме, в котором он находится. Форма курсора может меняться для указаниятекущего режима или действия, а индикатор — включаться или отключаться. Тест навизуальную информативность продукта: отойти от компьютера во время выполнениязадачи и позднее вернутся к работе. Обратить внимание на визуальные подсказкиинтерфейса, которые должны информировать о том, с чем вы работали, гденаходились и что делали.Предусмотреть функции отменыпоследнего действия, его повтора, а также установки по умолчанию
Использовать способность компьютера сохранять и отыскиватьинформацию о выборе пользователя, а также о свойствах системы. Предусмотретьмногоуровневые системы отмены и повтора команд, обеспечивающие уверенную испокойную работу с программой.Обеспечить ярлыки для интерфейса
Как только пользователи достаточно хорошо освоят программныйпродукт, они начинают испытывать потребность в ускорителях. Не игнорировать этунеобходимость, однако при разработке следовать стандартам.Активизировать синтаксис действий собъектами
Объектно-ориентированный синтаксис позволяет человеку понятьвзаимосвязь между объектами и действиями в программном продукте. Пользователимогут изучать и «листать» интерфейс, выбирая объекты и просматриваядоступные действия.Использовать метафоры реального мира
Быть осторожным при выборе и использовании метафор дляинтерфейса. Выбрав метафору, зафиксировать ее и следовать ей неукоснително.Если получится, что метафора не отвечает своему назначению во всем интерфейсе,то выбрать новую. Продолжать метафору, не прерывая ее.Объяснять понятия и действия
Никогда не забывать о легком доступе к часто используемымфункциям и действиям. Скрыть непопулярные свойства и функции и позволитьпользователю вызывать их по мере необходимости. Не надо пытаться отразить всюинформацию в главном окне. Использовать вторичные окна.Увеличить визуальную ясность
Компьютерные графики и оформители книг хорошо освоилиискусство представления информации. Этот навык должны иметь и разработчикипользовательского интерфейса. Правило 3: сделатьинтерфейс совместимым
Совместимость — ключевой аспект для использования интерфейса.Однако не следует во что бы то ни стало стремиться к ней. Одним из основныхпреимуществ последовательности является то, что пользователи могут перенестисвои знания и навыки из старой программы, которой они пользовались раньше, вновую.Принципы создания совместимости интерфейса:
1)проектирование последовательного интерфейса;
2)общая совместимость всех программ;
3)сохранение результатов взаимодействия;
4)эстетическая привлекательность и цельность;
5)поощрение изучения;Проектирование последовательного интерфейса
Пользователи должны иметь опорные точки при перемещении винтерфейсе. Это заголовки окон, навигационные карты и древовидные структуры.Другая визуальная помощь предоставляет немедленный, динамический обзорместоположения. Пользователь также должен иметь возможность завершить поставленнуюзадачу без изменения среды работы или переключения между стилями вводаинформации. Если сначала он использовал клавиатуру, то должна быть обеспеченавозможность завершить работу тоже с ней как с главным инструментом для взаимодействия.Общая совместимость всех программ
Изучение одной программы не должно кардинально отличаться отизучения подобной программы. Когда похожие объекты не работают одинаково вразличных ситуациях, у пользователей происходит отрицательный. Это тормозитизучение программы и приводит к тому, что пользователь теряет уверенность всвоих силах.Улучшение интерфейса и последовательности
Проектировщики программ должны быть осведомлены в примененииполученных навыков и осторожны при введении новых. Если улучшается интерфейс,то пользователь должен выучить лишь несколько новых приемов взаимодействия. Невынуждать его переучиваться и забывать многолетние навыки. «Подавить»имеющиеся навыки гораздо труднее, чем приобрести новые.Сохранение результатов взаимодействия
Если результаты могут быть отличны оттого, что ожидаетпользователь, то информировать его перед выполнением действия. Дать ему опциивыполнения действия, возможность отменить действие или произвести другое.Эстетическая привлекательность и цельность
Принятый для взгляда интерфейс не должен скрывать недостатокфункциональности программного продукта. Пользователи не должны видеть«губной помады на бульдоге», они должны получить красивый интерфейс,который поможет им в работе.Поощрение изучения
Интерфейсы сегодняшнего и завтрашнего дня — более интуитивны,предсказуемые, дружественные, привлекательные. Нашествие CD/DVD-ROM продуктов ибраузеров Internet, домашних страниц и прикладных программ открыло целый мирдля пользователей компьютера. Наступило время превращения дружественныхинтерфейсов в приятные в использовании и завлекающие интерфейсы почти во всехпрограммах.
Руководящие принципы
«Количество руководящих принципов увеличиваетсяпропорционально увеличению числа людей, вовлеченных в создание и разработку, атакже использование компьютерных систем. Постоянно увеличивающийся объем работпо производству все более лучших инструкций показывает, как трудно создаватьсистему согласно инструкции. Проектирование — это некоторое количествокомпромиссов, ряд конфликтов между неплохими принципами. Все это трудноуместить в инструкции.»
Джон ГулдДлячего нужны руководящие принципы
Принципы, которые обсуждались выше, адресованы представителямвсего «айсберга» проектирования. Инструкции относятся к элементампредставления информации и взаимодействия. Инструкции — это правила иобъяснения, предназначенные для того, чтобы следовать им при создании элементовинтерфейса, их поведения и внешнего вида.
Следование руководствам по проектированию без учета пожеланийпользователя обычно приводит к появлению неудачного интерфейса. Удобный ипоследовательный интерфейс не будет создан, если слепо следовать инструкции безпонимания механизма взаимодействия между собой. Гулд очень хорошо описал:«Многие инструкции слишком много внимания уделяют „расположениюкнопок“ и мало — пониманию и обучению»[13]. Таким образом, следованиеруководствам и инструкциям не является единственным критерием успеха.
Руководящие принципы создания интерфейса, отраженные винструкциях, должны не снижать и ограничивать творческую активность, апозволять пользователю применять к интерфейсу свое знание реальногомира(например, если пользователь видит на экране группу кнопок, похожих накнопки на панели радиоприемника, он может и должен применить свое знаниефункций кнопок в реальном мире к компьютеру).
Руководящие принципы построения интерфейса рассчитаны насегодняшние системы вывода и ввода информации. Они затрагивают такие технологии,как использование пера, писание от руки и голосовой ввод. Одна из проблемразработки инструкций, соответствующих новым технологиям, — это расшифровкаспособов взаимодействия пользователя с системой, так как степень этоговзаимодействия еще точно не определена. Инструкции должны базироваться на том,как пользователи реагируют на новшества и создаваться по происшествиинекоторого времени, необходимого, чтобы пользователи освоили интерфейс исоставили определенное мнение о нем.Нормативы
Руководящие принципы содержат характеристики стандартовпрезентаций, поведения и взаимодействия с элементами управления интерфейсом.
В руководствах по элементам интерфейса и его органамуправления сказано, когда их нужно исправить, как «подать» и какойдолжна быть техника работы с ними (например, клавиатурная или с помощью мыши).Полный набор руководств раскрывает сущность каждого объекта и элемента интерфейсав терминах и способах представления на экране, их поведение, механизм взаимодействияс ними пользователей.Развитиесуществующих руководящих принципов проектирования интерфейса
Многие программные продукты созданы для работы на разныхплатформах. С тех пор, как эти платформы имеют различные операционные системы,инструменты и стили интерфейса, очень сложно разрабатывать интерфейс,удовлетворяющий все платформы или работающий на каждой из платформ. Дополнение— подборка индустриальных руководств по проектированию — было разработаноБеллкором [12]. Оно содержит описание и руководящие принципы для основныхкомпаний и операционных систем, как IBM CUA, OSF, Microsoft Windows и др.
Задачи руководящих принципов по проектированию однозначны:предоставить пользователям возможность доступа к информации из любого местасистемы, в любой форме, создать такой интерфейс, который помогал бы людямработать и нравится им. Хорошо разработанный интерфейс позволяет пользователямсфокусироваться на выполнении задач, а не на особенностях программного иаппаратного обеспечения.Применениеруководящих принципов
Цели и руководящие принципы разработки интерфейса должны бытьреалистичными и доступными для пользователей. Специфика того или иного бизнесанакладывает ограничения на данную среду. Данные руководящие принципы поразработке интерфейса также должны проходить тестирование. Чтобы продуктсоответствовал руководящим принципам, необходимо иметь поддержку со стороныразработчиков. Ответственность за разработку совместимого интерфейса лежит напроектировщиках и разработчиках.Руководящиепринципы по разработке интерфейса на макро- и микроуровне
При разработке руководящих принципов по пользовательскомуинтерфейсу необходимо убедиться, что и разработка пользовательского интерфейса,и удобство применения анализируются с двух точек зрения — микро- и макроуровня.
Руководящие принципы на микроуровне рассматриваютпредставление пользователям индивидуальных элементов интерфейса(управляющих —кнопок, полей для галочки, полей для текста, линеек для прокручивания и т. Д.),а так же способы интерактивного их взаимодействия.
Разработка интерфейса на макроуровне представляет собойшаблон пользовательского интерфейса — продукт собирается весь целиком и егоконцепция становится ясна пользователям по мере взаимодействия с ним.
Программа "Tidy Start Menu"
Со временем у вас накопилось многопрограмм в меню «Пуск», и каждый раз для запуска нужной программы вамнужно тратить время на поиски? Программа «Tidy Start Menu» поможетвам навести порядок в меню и сделать работу комфортной!
Для этого программа предлагает разбить все программы из менюна категории. Так, например, программы, которые используются для работы в Интернет,можно объединить в группу «Интернет», а все игры поместить в категорию«Игры».
Программа наглядно демонстрирует второе правилопроектирования пользовательского интерфейса: уменьшить нагрузку напользователя, а также предусматривает «быстрые» пути, предусматриваетменю, содержащее объекты, которые можно выбрать, не заставляя пользователейвводить информацию вручную, имеет установки по умолчанию.
Ниже приведены исходники програмы и снимки его интерфейса.
program Man;
uses
Forms,Dialogs,Controls,
Viewing in 'Viewing.pas' {look},
Setuping in 'Setuping.pas' {setup},
Editing in 'Editing.pas' {Edit},
ADOTableofset in 'ADOTableofset.pas' {TabSheetset};
{$R *.res}
begin
try
Application.Initialize;
Application.Title := 'Programs';
Application.CreateForm(Tlook, look);
Application.CreateForm(Tsetup, setup);
Application.CreateForm(TEdit, Edit);
Application.CreateForm(TTabSheetset, TabSheetset);
Application.Run;
except
if MessageDlg('The software is not installed! You wishto instal it?',
mtInformation,[mbYes, mbCancel],0) = mryes then
begin
Application.Initialize;
Application.CreateForm(Tsetup, setup);
Application.Run;
end;end;
end.
/>
unit Viewing;
interface
uses
Windows, Messages, SysUtils, Variants, Classes,Graphics, Controls, Forms,
Dialogs, Menus, ComCtrls, ShellCtrls, ToolWin,ImgList;
const
WM_MYICONNOTIFY = WM_USER + 123;
type
Tlook = class(TForm)
PageControl1: TPageControl;
TabSheet1: TTabSheet;
TabSheet2: TTabSheet;
TabSheet3: TTabSheet;
TabSheet4: TTabSheet;
TabSheet5: TTabSheet;
ShellListView1: TShellListView;
ShellListView2: TShellListView;
ShellListView3: TShellListView;
ShellListView4: TShellListView;
ShellListView5: TShellListView;
PopupMenu1: TPopupMenu;
N1: TMenuItem;
N2: TMenuItem;
N3: TMenuItem;
N4: TMenuItem;
MainMenu1: TMainMenu;
Services1: TMenuItem;
oreinstall1: TMenuItem;
Edit1: TMenuItem;
Exit1: TMenuItem;
ToolBar1: TToolBar;
ImageList1: TImageList;
ToolButton1: TToolButton;
ToolButton2: TToolButton;
ToolButton3: TToolButton;
ToolButton4: TToolButton;
ToolButton5: TToolButton;
procedure FormCreate(Sender: TObject);
procedure FormDestroy(Sender: TObject);
procedure N1Click(Sender: TObject);
procedure N2Click(Sender: TObject);
procedure N4Click(Sender: TObject);
procedure FormActivate(Sender: TObject);
procedure oreinstall1Click(Sender: TObject);
procedure Exit1Click(Sender: TObject);
procedure Edit1Click(Sender: TObject);
private
ShownOnce: Boolean;
public
procedure WMICON(var msg: TMessage); messageWM_MYICONNOTIFY;
procedure WMSYSCOMMAND(var msg: TMessage);messageWM_SYSCOMMAND;
procedure CreateTrayIcon(n:Integer);
procedure DeleteTrayIcon(n:Integer);
procedure RestoreMainForm;
procedure HideMainForm;
end;
var
look: Tlook;
implementation
{$R *.dfm}
uses
ComObj, activex, ShellApi,
registry,StdCtrls,ADOTableofset, Setuping;
procedure Tlook.CreateTrayIcon(n:Integer);
var
nidata: TNotifyIconData;
begin
with nidata do
begin
cbSize := SizeOf(TNotifyIconData);
Wnd := Self.Handle;
uID := 1;
uFlags := NIF_ICON or NIF_MESSAGE or NIF_TIP;
uCallBackMessage := WM_MYICONNOTIFY;
hIcon := Application.Icon.Handle;
StrPCopy(szTip,Application.Title);
end;
Shell_NotifyIcon(NIM_ADD, @nidata);
end;
procedure Tlook.DeleteTrayIcon(n: Integer);
var nidata: TNotifyIconData;
begin
with nidata do
begin
cbSize := SizeOf(TNotifyIconData);
Wnd := Self.Handle;
uID := 1;
end;
Shell_NotifyIcon(NIM_DELETE, @nidata);
end;
procedure Tlook.FormCreate(Sender: TObject);
begin
ShownOnce:= False;
CreateTrayIcon(1);
end;
procedure Tlook.FormDestroy(Sender: TObject);
begin
DeleteTrayIcon(1);
end;
procedure Tlook.HideMainForm;
begin
Application.ShowMainForm := False;
ShowWindow(Application.Handle, SW_HIDE);
ShowWindow(Application.MainForm.Handle, SW_HIDE);
end;
procedure Tlook.N1Click(Sender: TObject);
begin
RestoreMainForm;
DeleteTrayIcon(1);
N1.Enabled := False;
N2.Enabled := True;
end;
procedure Tlook.N2Click(Sender: TObject);
begin
HideMainForm;
CreateTrayIcon(1);
n2.Enabled := False;
n1.Enabled := True;
end;
procedure Tlook.N4Click(Sender: TObject);
begin
close;
end;
procedure Tlook.RestoreMainForm;
var i,j: Integer;
begin
Application.ShowMainForm := True;
ShowWindow(Application.Handle, SW_RESTORE);
ShowWindow(Application.MainForm.Handle, SW_RESTORE);
if not ShownOnce then
begin
for I := 0 to Application.MainForm.ComponentCount -1do
if Application.MainForm.Components[I] is TWinControlthen
with Application.MainForm.Components[I] as TWinControldo
if Visible then
begin
ShowWindow(Handle, SW_SHOWDEFAULT);
for J := 0 to ComponentCount -1 do
if Components[J] is TWinControl then
ShowWindow((Components[J] as TWinControl).Handle,SW_SHOWDEFAULT);
end;
ShownOnce := True;
end;end;
procedure Tlook.WMICON(var msg: TMessage);
var P: TPoint;
begin
case msg.LParam of
WM_LBUTTONDOWN:
begin
GetCursorPos(p);
SetForegroundWindow(Application.MainForm.Handle);
PopupMenu1.Popup(P.X, P.Y);
end;
WM_LBUTTONDBLCLK: n1Click(Self);
end;
end;
procedure Tlook.WMSYSCOMMAND(var msg: TMessage);
begin
inherited;
if (Msg.wParam=SC_MINIMIZE) then n2Click(Self);
end;
procedure Tlook.FormActivate(Sender: TObject);
begin
n2.Click;
end;
procedure Tlook.oreinstall1Click(Sender: TObject);
begin
setup.Show;
end;
procedure Tlook.Exit1Click(Sender: TObject);
begin
close;
end;
procedure Tlook.Edit1Click(Sender: TObject);
begin
hide;
TabSheetset.Show;
end;
end.
Модуль Setup:
unit setuping;
interface
uses
Windows, Messages, SysUtils, Variants, Classes,Graphics, Controls, Forms,
Dialogs, ComCtrls, StdCtrls, ShlObj, ComObj, ActiveX,DB, ADODB;
type
Tsetup = class(TForm)
ProgressBar1: TProgressBar;
Button1: TButton;
ListBox1: TListBox;
Label1: TLabel;
Button2: TButton;
DataSource1: TDataSource;
ADOConnection1: TADOConnection;
ADOTable1: TADOTable;
ADOTable2: TADOTable;
ADOTable3: TADOTable;
ADOTable4: TADOTable;
ADOTable5: TADOTable;
ADOTable1N: TAutoIncField;
ADOTable1Run: TWideStringField;
ADOTable1Program: TWideStringField;
ADOTable2N: TAutoIncField;
ADOTable2Run: TWideStringField;
ADOTable2Program: TWideStringField;
ADOTable3N: TAutoIncField;
ADOTable3Run: TWideStringField;
ADOTable3Program: TWideStringField;
ADOTable4N: TAutoIncField;
ADOTable4Run: TWideStringField;
ADOTable4Program: TWideStringField;
ADOTable5N: TAutoIncField;
ADOTable5Run: TWideStringField;
ADOTable5Program: TWideStringField;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure FormClose(Sender: TObject; var Action:TCloseAction);
end;
var
setup: Tsetup;
f:Text;
implementation
{$R *.dfm}
procedure Tsetup.Button1Click(Sender: TObject);
var
i:integer;
s1,s2:string;
procedure LookDir(StartDir, Mask: String;List:TStrings);
var
SearchRec: TSearchRec;
s,k:string;
begin
if StartDir[Length(StartDir)] '\' thenStartDir := StartDir + '\';
if FindFirst(StartDir+'*.*', faAnyFile, SearchRec) = 0then
begin
repeat
if (SearchRec.Attr and faDirectory) faDirectory then
begin
if ExtractFileExt(StartDir+SearchRec.Name) = Mask then
begin
List.Add(StartDir+SearchRec.Name);
s:=StartDir+SearchRec.Name;
k:=SearchRec.Name;
writeln(f,s);
writeln(f,k);i:=i+1;
ProgressBar1.Position:=i;
end;end
else
if (SearchRec.Name '..') and (SearchRec.Name '.') then
begin
LookDir(StartDir + SearchRec.Name + '', Mask,list);
end;
until FindNext(SearchRec) 0;
FindClose(SearchRec);
end;end;
procedure jarlik(const PathObj, PathLink, Desc, Param:string);
var
IObject: IUnknown;
SLink: IShellLink;
PFile: IPersistFile;
begin
IObject := CreateComObject(CLSID_ShellLink);
SLink := IObject as IShellLink;
PFile := IObject as IPersistFile;
with SLink do
begin
SetArguments(PChar(Param));
SetDescription(PChar(Desc));
SetPath(PChar(PathObj));
end;
PFile.Save(PWChar(WideString(PathLink)), FALSE);
end;
procedure setap;
begin
while not eof(f) do
begin i:=i+1;
ProgressBar1.Position:=i;
readln(f,s1);readln(f,s2);
ADOTable1.First;
ADOTable2.First;ADOTable3.First;
ADOTable4.First;ADOTable5.First;
while not ADOTable1.Eof do
begin
if s2=ADOTable1Run.AsString then
jarlik(s1,'C:\setup\Entertainments\'+ADOTable1Program.AsString+'.lnk','','')
ADOTable1.Next;
end;
while not ADOTable2.Eof do
begin
if s2=ADOTable2Run.AsString then
jarlik(s1,'C:\setup\Games\'+ADOTable2Program.AsString+'.lnk','','');
ADOTable2.Next;
end;
while not ADOTable3.Eof do
begin
if s2=ADOTable3Run.AsString then
jarlik(s1,'C:\setup\Internet\'+ADOTable3Program.AsString+'.lnk','','');
ADOTable3.Next;
end;
while not ADOTable4.Eof do
begin
if s2=ADOTable4Run.AsString then
jarlik(s1,'C:\setup\Office\'+ADOTable4Program.AsString+'.lnk','','');
ADOTable4.Next;
end;
while not ADOTable5.Eof do
begin
if s2=ADOTable5Run.AsString then
jarlik(s1,'C:\setup\Utilites\'+ADOTable5Program.AsString+'.lnk','','');
ADOTable5.Next;
end;end;end;
begin
ProgressBar1.Max:=5000;i:=0;
CreateDir('C:\setup');
CreateDir('C:\setup\Internet');
CreateDir('C:\setup\Entertainments');
CreateDir('C:\setup\Games');
CreateDir('C:\setup\Office');
CreateDir('C:\setup\Utilites');
assignfile(f,'REZ.txt');
rewrite(f);
LookDir('C:\Program Files', '.exe',ListBox1.Items);
reset(f);setap;
closefile(f);
ProgressBar1.Position:=ProgressBar1.Max;
Label1.Caption:='Installation is finished';
Button1.Visible:=False;
Button2.Visible:=true;
end;
procedure Tsetup.Button2Click(Sender: TObject);
begin
Close;
end;
procedure Tsetup.FormClose(Sender: TObject; varAction: TCloseAction);
begin
ADOTable1.Close;ADOTable2.Close;
ADOTable3.Close;ADOTable4.Close;
ADOTable5.Close;
end;
end.
/>
unit ADOTableofset;
interface
uses
Windows, Messages, SysUtils, Variants, Classes,Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls, DB, ADODB;
type
TTabSheetset = class(TForm)
RadioGroup1: TRadioGroup;
Button1: TButton;
DataSource1: TDataSource;
ADOTable1: TADOTable;
procedure Button1Click(Sender: TObject);
procedure FormClose(Sender: TObject; var Action:TCloseAction);
end;
var
TabSheetset: TTabSheetset;
implementation
{$R *.dfm}
uses Editing, Viewing, Setuping;
procedure TTabSheetset.Button1Click(Sender: TObject);
begin
edit.Show;
case TabSheetset.RadioGroup1.ItemIndex of
0:ADOTable1.TableName:='Entertainments';
1:ADOTable1.TableName:='Games';
2:ADOTable1.TableName:='Internet';
3:ADOTable1.TableName:='Office';
4:ADOTable1.TableName:='Utilites';
end;
ADOTable1.Open;
hide;
end;
procedure TTabSheetset.FormClose(Sender: TObject;
var Action: TCloseAction);
begin
ADOTable1.Close;
look.Show;
end;
end.

/>
unit Editing;
interface
uses
Windows, Messages, SysUtils, Variants, Classes,Graphics, Controls, Forms,
Dialogs, Grids, DBGrids, DB, ADODB, Menus, ComCtrls,ToolWin, ExtCtrls,
DBCtrls;
type
TEdit = class(TForm)
DBGrid1: TDBGrid;
MainMenu1: TMainMenu;
abSheet1: TMenuItem;
choose1: TMenuItem;
N1: TMenuItem;
Close1: TMenuItem;
ToolBar1: TToolBar;
ToolButton1: TToolButton;
ToolButton2: TToolButton;
ToolButton5: TToolButton;
DBNavigator1: TDBNavigator;
procedure FormClose(Sender: TObject; var Action:TCloseAction);
procedure Close1Click(Sender: TObject);
procedure ToolButton1Click(Sender: TObject);
procedure choose1Click(Sender: TObject);
end;
var
Edit: TEdit;
implementation
uses Viewing, ADOTableofset;
{$R *.dfm}
procedure TEdit.FormClose(Sender: TObject; var Action:TCloseAction);
begin
TabSheetset.ADOTable1.Close;
look.Show;
end;
procedure TEdit.Close1Click(Sender: TObject);
begin
close;
end;
procedure TEdit.ToolButton1Click(Sender: TObject);
begin
TabSheetset.Show;close;
end;
procedure TEdit.choose1Click(Sender: TObject);
begin
TabSheetset.Show;close;
end;
end.

Заключение
«Разработчики, которые борются за совместимостьпользовательского интерфейса, могут стать похожими на судей из Верховного суда,когда те пытаются дать определение порнографии: каждый из нас чувствует, чтоузнает это, как только увидит, однако люди часто дают определения, которыеостаются иллюзорными. При ближайшем рассмотрении становится ясно, чтосовместимость — ненадежное руководство и что разработчикам часто лучшесконцентрироваться на рабочей среде пользователя.»
Джонатан Грудин
Совместимость – одна из основных задач разработкипользовательского интерфейса. Совместимость очень сложно идентифицировать,определить и внедрить. Кроме того, она может и отвлекать от основных целей.Грудин делает предположение о том, что «когда совместимостьпользовательского интерфейса становится первоочередной задачей, то это уводитнаше внимание в сторону от главного — пользователей и их работы» [14].
Совместимость системы и интерфейса в некоторых случаях можетпротивостоять ожиданиям и пожеланиям пользователей. Не стоит следоватьпринципам в области совместимости лишь ради самой совместимости — сначала надоправильно разработать что-либо, а уже за тем последовательно применять это ковсему интерфейсу. При разработке интерфейса продукта все принципы могутинтерпретироваться по-разному. Не важно, насколько они детальны. Принципы поразработке интерфейса никогда не были и не будут «поваренной книгой»для программного проектирования.
Исследователи занимались изучениемтого, как разработчики используют руководящие принципы. Одно исследование былопроведено в рамках подготовки компанией IBM (1992) руководства попользовательскому интерфейсу и справочнику. Тецлав и Шварц предложилиразработчикам построить соответствующие интерфейсы на базе руководящихпринципов по общему пользовательскому интерфейсу. Они выяснили, что былиупущены несколько важных идей и деталей. Разработчики отдавали предпочтение графическимиллюстрациям и примерам, а не тексту, рассказывающему о концепциях разработки.Кроме того, они хотели иметь возможность исследовать предлагаемые примеры интерактивнымспособом. Полученные разработки в большой степени были признаны совместимыми,однако имели место и расхождения в интерпретации руководящих принципов [15].Разработка интерфейса во многом похожа на нашу жизнь — на конкретный вопрос невсегда есть однозначный ответ.
Другое исследование Товтрап и Нильсен принесло аналогичныерезультаты [16]. Только 71% разработок соответствовал стандартам. Большая частьотличий была обусловлена влияниям опыта разработчиков по созданию нестандартныхпроектов. Представленный для оценки интерфейс имел в среднем от 4 до 12отклонений. Это было особенно удивительно, поскольку у участников теста интереск удобству применения интерфейса был выше среднего. Разработка интерфейса —больше искусство, чем наука. Конкретные примеры чрезвычайно полезны, посколькудемонстрируют, как надо следовать руководящим принципам по разработке. Чтобыобучить разработчиков использованию принципов, требуются продолжительныетренинги. Алан Зейчик удачно подвел итог по этой теме: «Мораль такова: приразработке программных инструментов и потребительских продуктов стоит следоватьсуществующим руководящим принципам по пользовательскому интерфейсу. Следуйтеим, даже если вам кажется, что они имеют дефекты. Возможно, ваш проект болеевысокого качества, но спросите себя: поможет ли эта высочайшего качества схема,отображающая функциональные клавиши, или усовершенствованная метафора менюмоему приложению стать неотъемлемой частью рабочей среды пользователя? Или этостанет постоянным источником раздражения, из-за которого мой совершенныйпродукт в итоге будет пылиться на полке?».
Литература
1.        AppleComputer, Inc. 1992. Macintosh Human Interface Guidelines. Reading. MA:Addison-Wesley.
2.        Hansen,W. 1971. User engineering principles for interactive systems. AFIPS ConferenceProceedings 39. AFIPS Press, pp. 523-532.
3.        Heckel,Paul. 1984. The Elements of Friendly Software Design. New York: Warner Books.
4.        IBMCorporation. 1992. Object-Oriented Interface Design: IBM Common User AccessCuidelines. New York: QUE.
5.        Johnson,Jeff, Teresa Roberts, William Verplank, David Smith, Charles Irby, MarianBeard, and Kevin Mackey. 1989. The Xerox Star: A Retrospective. IEEE Computer22(9): pp. 11-29.
6.        Mayhew,Deborah. 1992. Principles and Guidelines in Software User Interface Design.Englewood Cliffs, NJ: Prentice-Hall.
7.        MicrosoftCorporation. 1995. The Windows Interface Cuidelines for Software Design. Redmond,WA: Microsoft Press.
8.        Nielsen,Jakob. 1990. Traditional dialogue design applied to modern user interfaces.Communication of the ACM 33(10), pp. 109-118.
9.        OpenSoftware Foundation. 1993. OSF/Motif Style Guide, Revision 1.2. EnglewoodCliffs, Prentice-Hall.
10.     Rubenstein,R. and H. Hersch. 1984. The Human Factor: Designing Computer System for People,Newton, MA: Digital Press.
11.     Shneiderman,Ben. 1992. Designing the User Interface: Strategies for Effective Human-ComputerInteraction. Reading. MA: Addison-Wesley.
12.     Bellcore.1996. Design Guide for Multiplatform Graphical User Interfaces. LP-R13,Piscataway, NJ: Bellcore (http://www.bellcore.com).
13.     Gould,Jonh D. 1988. How to design usable systems. In Helander, M. (Ed.), Handbook ofHuman-Computer Interaction. Amsterdam, Holland: Elsevier Science Publishers.
14.     Grudin,Jonathan. 1989. The case against user interface consistency. Communications ofthe ACM 32(10).
15.     Tetzlaff,Linda and David R. Schwartz. 1991. The use of guidelines in interface design.Proceeding of ACM CHI’91, New Orleans, LA.
16.     Smith,Sidney and Jane Mosier. 1986. Guidelines for Designing User Interface Software.Report ESD-TR-86-278 MTR-10090. Bedford, MA: MITRE Corporation.


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

Поделись с друзьями, за репост + 100 мильонов к студенческой карме :

Пишем реферат самостоятельно:
! Как писать рефераты
Практические рекомендации по написанию студенческих рефератов.
! План реферата Краткий список разделов, отражающий структура и порядок работы над будующим рефератом.
! Введение реферата Вводная часть работы, в которой отражается цель и обозначается список задач.
! Заключение реферата В заключении подводятся итоги, описывается была ли достигнута поставленная цель, каковы результаты.
! Оформление рефератов Методические рекомендации по грамотному оформлению работы по ГОСТ.

Читайте также:
Виды рефератов Какими бывают рефераты по своему назначению и структуре.