Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Курс_роб(вказівки)_90.doc
Скачиваний:
1
Добавлен:
04.05.2019
Размер:
484.86 Кб
Скачать

Приклади програм для створення інтерфейсу користувача

1. Приклад програми для створення меню в графічному режимі. В масиві mas: array [1..9] of string пункти меню. Процедура procedure poln - виводить меню. Після вибору пункту меню в змінній h1 номер вибраного пункту:

uses crt, graph;

const mas: array[1..9] of string=('пункт1', 'пункт2', 'пункт3', 'пункт4', 'пункт5', 'пункт6', 'пункт7', 'пункт8', 'пункт9');

Var pr, s, h, h1, c, gd, gm: integer;

a: char;

procedure poln;

Var c: integer;

begin

cleardevice;

h:=1;

h1:=1;

setfillstyle(8, 1);

bar(1, 1, 639, 479);

settextstyle(0, 0, 0);

setfillstyle(1, 8);

for c:=1 to 9 do begin

setcolor(15);

rectangle(280, c*35+95, 600, c*35+120);

bar(281, c*35+96, 599, c*35+119);

setcolor(0);

outtextxy(290, c*35+104, mas[c]);

end;

setfillstyle(1, 0);

bar(281, 132, 599, 154);

setcolor(15);

outtextxy(290, 139, mas[1]);

repeat

repeat

a:=readkey;

until a in [#72, #80, #13, #27];

case a of

#72: h:=h-1;

#80: h:=h+1;

end;

if h=10 then h:=1; if h=0 then h:=9;

setfillstyle(1,8); bar(281, h1*35+96, 599, h1*35+119);

setcolor(0); outtextxy(290, h1*35+104, mas[h1]);

setfillstyle(1, 0); bar(281, h*35+96, 599, h*35+119);

setcolor(15); outtextxy(290, h*35+104, mas[h]);

h1:=h;

until (a=#13) or (a=#27);

end;

begin

pr:=1;

h:=1;

h1:=1;

clrscr;

gd:=detect;

Initgraph(gd, gm, '');

if graphresult<>grok then halt(1);

poln;

end.

2. Приклад програми для створення меню в текстовому режимі. Містить в собі набір процедур для оформлення інтерфейсу користувача. Процедура CF(c, f: byte) встановлює колір і фон для символів, що виводяться. Процедура BEEP дає звуковий сигнал. Процедура CURSOR(flag: boolean) робить видимий чи невидимий курсор. Процедура FRAME(x1, y1, x2, y2: integer) малює рамку в заданих координатах символами псевдографіки. Процедура GMENU(x1, y1: integer; ss1, ss2, ss3, ss4,ss5, ss6, ss7: string; var regime: byte) малює горизонтальне меню на 7 пунктів. Номер вибраного пункту в змінній regime.

USES CRT,DOS;

Var c, f, rez: byte;

Procedure CF(c, f: byte);

begin

TextColor(C);

TextBackGround(F);

end;

Procedure BEEP;

begin

Sound(800);

Delay(70);

NoSound;

end;

Procedure CURSOR(flag: boolean);

Const SizeCursor: word=0;

Var Reg:registers;

begin

with Reg do begin

if Flag then begin CX:=SizeCursor; end

else begin

BH:=0;

AH:=03;

Intr($10,Reg);

SizeCursor:=CX;

CH:=$20;

end;

AH:=01;

Intr($10,Reg);

end;

end;

Procedure FRAME(x1, y1, x2, y2: integer);

Const

A=#186; B=#187; C=#188; D=#200; E=#201; F=#205;

Var I, j: Integer;

begin

GoToXY(X1,Y1); write(E);

for I:=(X1+1) to(X2-1) do write(F);

write (B);

for I:=(Y1+1) to(Y2-1) do

begin

GoToXY(X1,I); write(A);

GoToXY(X2,I); write(A);

end;

GoToXY(X1,Y2); write(D);

for I:=(X1+1) to(X2-1) do write (F);

write(C)

end;

Procedure GMENU(x1, y1: integer; ss1, ss2, ss3, ss4,

ss5, ss6, ss7: string; var regime: byte);

Label Met;

const k1: byte=0; kr=7;