47939 (608411), страница 3

Файл №608411 47939 (Основные принципы разработки графического пользовательского интерфейса) 3 страница47939 (608411) страница 32016-07-30СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 3)

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 -1 do

if Application.MainForm.Components[I] is TWinControl then

with Application.MainForm.Components[I] as TWinControl do

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)] <> '\' then StartDir := StartDir + '\';

if FindFirst(StartDir+'*.*', faAnyFile, SearchRec) = 0 then

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; var Action: 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. Apple Computer, Inc. 1992. Macintosh Human Interface Guidelines. Reading. MA: Addison-Wesley.

  2. Hansen, W. 1971. User engineering principles for interactive systems. AFIPS Conference Proceedings 39. AFIPS Press, pp. 523-532.

  3. Heckel, Paul. 1984. The Elements of Friendly Software Design. New York: Warner Books.

  4. IBM Corporation. 1992. Object-Oriented Interface Design: IBM Common User Access Cuidelines. New York: QUE.

  5. Johnson, Jeff, Teresa Roberts, William Verplank, David Smith, Charles Irby, Marian Beard, and Kevin Mackey. 1989. The Xerox Star: A Retrospective. IEEE Computer 22(9): pp. 11-29.

  6. Mayhew, Deborah. 1992. Principles and Guidelines in Software User Interface Design. Englewood Cliffs, NJ: Prentice-Hall.

  7. Microsoft Corporation. 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. Open Software Foundation. 1993. OSF/Motif Style Guide, Revision 1.2. Englewood Cliffs, 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-Computer Interaction. 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 of Human-Computer Interaction. Amsterdam, Holland: Elsevier Science Publishers.

  14. Grudin, Jonathan. 1989. The case against user interface consistency. Communications of the 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.

Характеристики

Тип файла
Документ
Размер
8,23 Mb
Тип материала
Учебное заведение
Неизвестно

Список файлов курсовой работы

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