Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | ||
|
В процессе своей работы за компьютером пользователь постоянно встречается с меню различных форматов. Сущность структуры меню заключается в том, что у пользователя есть список возможных вариантов данных для ввода, среди которых ему необходимо выбрать то, что требуется.
Основные форматы меню следующие:
¾ список объектов, выбираемых указанием числовых кодов, например,
1. | Открыть базу данных |
2. | Отредактировать |
3. | Поиск в базе данных |
4. | Отсортировать |
5. | Выход |
¾ список объектов, выбираемых указанием мнемонических кодов:
Соб | Собственность |
Трн | Транспорт |
Меб | Мебель |
Рзн | Разное |
Кон | Конец |
¾ меню в виде блока данных в столбик - вертикальное меню или в строчку - горизонтальное меню или комбинации этих двух видов меню, например,
вертикальное меню: горизонтальное меню:
Треугольник | ||||
Круг | Сохранение | Редактирование | Выполнение | |
Квадрат | ||||
Выход |
комбинированное меню:
Файл | Правка | Формат | Справка |
Открыть | Вырезать | Шрифт | |
Закрыть | Копировать | Абзац | |
Сохранить | Вставить | ||
Выход |
¾ меню в виде пиктограмм, иконок или значков.
Задача. В дальнейшем представим простейший алгоритм построения вертикального меню. Данный алгоритм строит меню из трех пунктов:
Данные |
Справка |
Выход |
Движение по этому меню выполняется с помощью стрелок вверх ↑ или вниз ↓. Выполнение каждого пункта меню осуществляется при нажатии клавиши Ввод на выбранном пункте меню.
Uses CRT,DOS;
Var SPISOK:array[1..3] of string[7];
kod,kod1: char;
n,i,p: byte;
{процедура регулирования размера курсора}
Procedure CURS(size:word);
Var Regs: Registers;
begin
With Regs do
begin
AH:=$01;
CH:=Hi(size);
CL:=Lo(size);
Intr($10,Regs)
end
end;
{процедура вывода информации по выбранному пункту меню}
Procedure findd(n:byte);
begin
Textmode(3);
Window(1,1,80,25);
TextBackGround(Black);
ClrScr;
case n of {анализ номера выбранного пункта меню}
1: begin {вывод информации для пункта 1} end;
2: begin {вывод информации для пункта 2} end;
3: exit
end;
readln;
Curs($0607) {восстановить стандартный размер курсора}
end;
{процедура оформления меню и обработки нажатой клавиши}
Procedure oformenu;
begin
p:=1; i:=1;
Repeat {построение пунктов меню}
if i=n then
begin TextBackGround(Blue); Textcolor(LightGray); end
else
begin TextBackGround(Lightgray); Textcolor(Blue); end;
gotoxy(1,i);
writeln(SPISOK[i]); {вывод текста пунктов меню}
inc(i); inc(p)
until p>3;
kod:=ReadKey;
CASE kod of
#13: begin { обработка клавиши Ввод}
findd(n);
exit
end;
#0: begin
kod1:=ReadKey; {обработка нажатия клавиш ↑, ↓}
Case kod1 of
#72: if n>1 then dec(n)
else n:=3;
#80: if n<3 then inc(n)
else n:=1;
end;
oformenu; {рекурсивный вызов процедуры}
end
else oformenu
end;
end;
BEGIN {основная программа}
SPISOK[1]:='Данные ';
SPISOK[2]:='Справка';
SPISOK[3]:=' Выход ';
TextBackGround(Black); {установка цвета фона}
Textcolor(Lightgray); {установка цвета шрифта}
ClrScr; {очистка окна}
Window(35,10,43,13); {задание окна для меню}
n:=1; {указатель номера выбранного пункта меню}
Curs($2000); {удаление изображения курсора}
oformenu; {вызов процедуры оформления меню}
END.
Контрольные вопросы
1. Дайте определение прерыванию.
2. Характеристика регистров общего назначения (РОН).
3. Назначение модулей CRT, DOS, SYSTEM.
4. Какие процедуры и функции необходимы для работы с каталогами и файлами?
5. Как установить текущую дату и время?
6. Как осуществляется вызов внешних программ?
7. Необходимость текстового режима.
8. Основные процедуры и функции для работы с окнами и экраном, звуком.
9. Опишите форматы горизонтального и вертикального меню
Дата публикования: 2014-12-10; Прочитано: 424 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!