Uses Crt;
Const kol=15;
Type s=array[1..15] of string[10];
Var CopyAttr:array[1..3] of byte;
Spisok:s;
Procedure Colors(x,y:word);
Procedure Pol;
Procedure Ramka(x1,y1,x2,y2:word;fonr,colr:byte;contur,name:string);
Procedure NewMenu(var namber:byte; x1,y1,x2,y2:word;
fonr,colr,fons,cols:byte;
contur,name:string; Spisok:s);
Implementation
{------------------------------------------------------}
Procedure Colors;
begin
...
end;
{------------------------------------------------------}
Procedure Pol;
begin
...
end;
{------------------------------------------------------}
Procedure Ramka;
var k:integer;
begin
...
end;
{------------------------------------------------------}
Procedure NewMenu;
const Enter=#13; { выбор пункта меню }
Esc=#27; { отмена работы с меню}
sdvig=#0; { признак управляющей клавиши }
Up=#72; { вверх по меню }
Down=#80; { вниз по меню }
Var old:byte;
x,y:word;
ch:char;
n,newkursor:integer;
Begin
...
end;
end.
(*--------------------------------------------------*)
(* Основная программа использующая модуль MyCrt *)
(*--------------------------------------------------*)
Program PrimMenu;
Uses Crt,Mycrt;
Var ch:char;
N,old:byte;
Const Spisok:s=('ASSIGN','BREAK','COPY','DATE','FORMAT',
'LABEL','PATH','PRINT','SET','SYS',
'TYPE','TIME','VER','VERIFY','VOL');
Procedure help;
begin
ramka(1,21,80,24,10,14,'╔╗╚╝═║',' ВЫБОР КЛАВИШ ');
GotoXY(1,2);
writeln(' ':10,'ENTER - выбор команды Esc - выход из меню');
write(' ':10,'CТРЕЛКИ (вверх,вниз)-выбор пункта меню');
end;
Begin
old:=lastmode;
Clrscr;
Help; { вывод подсказки }
NewMenu(N,10,1,50,20,13,14,3,8,'╔╗╚╝═║','HELP-DOS',Spisok);
if N<>0 then begin
Ramka(30,10,70,13,3,15,'╔╗╚╝═║','РЕЗУЛЬТАТ');
write(' выбран элемент меню :',Spisok[N]);
end;
ch:=readkey;
textmode(old);
end.
Приложение 1. Кодировочная таблица ПЭВМ.
Символы с кодами 0-32 управляющие, поэтому в таблице
не приводяться.
┌────────┐───────┐───────┐────────┐────────┐───────┐────────┐
│ 32 │ 64 @ │ 96 `│ 128 А│160 а │192 └│224 р│
│ 33 ! │ 65 A │ 97 a│ 129 Б│161 б │193 ┴│225 с│
│ 34 " │ 66 B │ 98 b│ 130 В│162 в │194 ┬│226 т│
│ 35 # │ 67 C │ 99 c│ 131 Г│163 г │195 ├│227 у│
│ 36 $ │ 68 D │100 d│ 132 Д│164 д │196 ─│228 ф│
│ 37 % │ 69 E │101 e│ 133 Е│165 е │197 ┼│229 х│
│ 38 & │ 70 F │102 f│ 134 Ж│166 ж │198 ╞│230 ц│
│ 39 ' │ 71 G │103 g│ 135 З│167 з │199 ╟│231 ч│
│ 40 ( │ 72 H │104 h│ 136 И│168 и │200 ╚│232 ш│
│ 41 ) │ 73 I │105 i│ 137 Й│169 й │201 ╔│233 щ│
│ 42 * │ 74 J │106 j│ 138 К│170 к │202 ╩│234 ъ│
│ 43 + │ 75 K │107 k│ 139 Л│171 л │203 ╦│235 ы│
│ 44 , │ 76 L │108 l│ 140 М│172 м │204 ╠│236 ь│
│ 45 - │ 77 M │109 m│ 141 Н│173 н │205 ═│237 э│
│ 46 . │ 78 N │110 n│ 142 О│174 о │206 ╬│238 ю│
│ 47 / │ 79 O │111 o│ 143 П│175 п │207 ╧│239 я│
│ 48 0 │ 80 P │112 p│ 144 Р│176 ░ │208 ╨│240 Ё│
│ 49 1 │ 81 Q │113 q│ 145 С│177 ▒ │209 ╤│241 ё│
│ 50 2 │ 82 R │114 r│ 146 Т│178 ▓ │210 ╥│242 Є│
│ 51 3 │ 83 S │115 s│ 147 У│179 │ │211 ╙│243 є│
│ 52 4 │ 84 T │116 t│ 148 Ф│180 ┤ │212 ╘│244 Ї│
│ 53 5 │ 85 U │117 u│ 149 Х│181 ╡ │213 ╒│245 ї│
│ 54 6 │ 86 V │118 v│ 150 Ц│182 ╢ │214 ╓│246 Ў│
│ 55 7 │ 87 W │119 w│ 151 Ч│183 ╖ │215 ╫│247 ў│
│ 56 8 │ 88 X │120 x│ 152 Ш│184 ╕ │216 ╪│248 °│
│ 57 9 │ 89 Y │121 y│ 153 Щ│185 ╣ │217 ┘│249 ∙│
│ 58 : │ 90 Z │122 z│ 154 Ъ│186 ║ │218 ┌│250 ·│
│ 59 ; │ 91 [ │123 {│ 155 Ы│187 ╗ │219 █│251 √│
│ 60 < │ 92 \ │124 |│ 156 Ь│188 ╝ │220 ▄│252 №│
│ 61 = │ 93 ] │125 }│ 157 │189 ╜ │221 ▌│253 ¤│
│ 62 > │ 94 ^ │126 ~│ 158 [1]│190 ╛ │222 ▐│254 ■│
│ 63 ? │ 95 _ │127 │ 159 Я│191 ┐ │223 ▀│255 │
└────────┘───────┘───────┘────────┘────────┘───────┘────────┘
Продолжение приложения 1. Расширенный набор кодов.
┌────────────┬───────────────────────────────────────────┐
│ Код │ Клавиша или комбинация клавишей │
├────────────┼───────────────────────────────────────────┤
│ 3 │ CTRL-2 │
│ 15 │ SHIFT-TAB │
│ 16...25 │ ALT-Q...ALT-P (верхний ряд букв) │
│ 30...38 │ ALT-A...ALT-L (средний ряд букв) │
│ 44...50 │ ALT-Z...ALT-M (нижний ряд букв) │
│ 59...68 │ F1...F10 │
│ 71 │ HOME │
│ 72 │ Курсор вверх │
│ 73 │ PGUP │
│ 75 │ Курсор влево │
│ 77 │ Курсор вправо │
│ 79 │ END │
│ 80 │ Курсор вниз │
│ 81 │ PGDN │
│ 82 │ INS │
│ 83 │ DEL │
│ 84...93 │ SHIFT-F1...SHIFT-F10 │
│ 94...103 │ CTRL-F1...CTRL-F10 │
│104...113 │ ALT-F1...ALT-F10 │
│ 114 │ CTRL-PRTSCR │
│ 115 │ CTRL-Курсор влево │
│ 116 │ CTRL-Курсор вправо │
│ 117 │ CTRL-END │
│ 118 │ CTRL-PGDN │
│ 119 │ CTRL-HOME │
│120...131 │ ALT-1...ALT-= (верхний ряд клавишей)│
│ 132 │ CTRL-PGUP │
└────────────┴───────────────────────────────────────────┘
Приложение 2. Константы графического режима.
Константы драйверов.
const
Detect = 0; {режим автоопределения типа}
CGA = 1;
MCGA = 2;
EGA = 3;
EGA64 = 4;
EGAMono = 5;
IBM8514 = 6;
HercMono = 7;
ATT400 = 8;
VGA = 9;
PC3270 = 10;
Константы графических режимов.
const
CGAC0 = 0; {320x200, 4 цвета, палитра 0:
ярко-зеленый, ярко-красный, желтый}
CGAC1 = 1; {320x200, 4 цвета, палитра 1:
ярко-голубой, малиновый, белый}
CGAC2 = 2; {320x200, 4 цвета, палитра 2:
зеленый, красный, коричневый}
CGAC3 = 3; {320x200, 4 цвета, палитра 3:
голубой, фиолетовый, светло-серый}
CGAHi = 4; {640x200, 1 цвет}
MCGAC0 = 0; {320x200, 4 цвета, палитра 0:
ярко-зеленый, ярко-красный, желтый}
MCGAC1 = 1; {320x200, 4 цвета, палитра 1:
ярко-голубой, малиновый, белый}
MCGAC2 = 2; {320x200, 4 цвета, палитра 2:
зеленый, красный, коричневый}
MCGAC3 = 3; {320x200, 4 цвета, палитра 3:
голубой, фиолетовый, светло-серый}
MCGAMed = 4; {640x200, 1 цвет}
MCGAHi = 5; {640x480, 1 цвет}
EGALo = 0; {640x200, 16 цветов}
EGAHi = 1; {640x350, 16 цветов}
EGAMonoHi = 3; {640x350}
HercMonoHi = 0; {720x348, 1 цвет}
ATT400C0 = 0; {320x200, 4 цвета, палитра 0:
ярко-зеленый, ярко-красный, желтый}
ATT400C1 = 1; {320x200, 4 цвета, палитра 1:
ярко-голубой, малиновый, белый}
ATT400C2 = 2; {320x200, 4 цвета, палитра 2:
зеленый, красный, коричневый}
ATT400C3 = 3; {320x200, 4 цвета, палитра 3:
голубой, фиолетовый, светло-серый}
ATT400Med = 4; {640x200, 1 цвет}
ATT400Hi = 5; {640x400, 1 цвет}
VGALo = 0; {540x200, 16 цветов}
VGAMed = 1; {640x350, 16 цветов}
VGAHi = 2; {640x480, 16 цветов}
PC3270Hi = 0; {720x350, 1 цвет}
IBM8514Lo = 0; {640x480, 256 цветов}
IBM8514Hi = 1; {1024x768, 256 цветов}
Константы ошибок при работе с графикой.
const
grOk 4 0= 0; {нет ошибок}
grInitGraph 4 0=-1; {не инициирован графический режим}
grNotDetected 4 0=-2; {не определен тип драйвера}
grFileNotFind 4 0=-3; {не найден графический драйвер}
grInvalidDriver =-4; {неправильный тип драйвера}
grNoLoadMem 4 0=-5; {нет памяти для размещения драйвера}
grNoScanMen 4 0=-6; {нет памяти для просмотра областей}
grNoFloodMem 4 0=-7; {нет памяти для закраски областей}
grFontNotFound 4 0=-8; {не найден файл со шрифтом}
grNoFontMem 4 0=-9; {нет памяти для размещения шрифта}
grInvalidMode 4 0=-10 4; 0{неправильный графический режим}
grError 4 0=-11;{общая ошибка}
grIOError 4 0=-12;{ошибка ввода-вывода}
grInvalidFont 4 0=-13;{неправильный формат шрифта}
grInvalidFontNum=-14;{неправильный номер шрифта}