Розробка комп'ютерних навчальних засобів з обраної предметної області, Детальна інформація
Розробка комп'ютерних навчальних засобів з обраної предметної області
Це є основна функція, що і виконує сновну функцію всього модуля. Змінні c1, c2, c3, c4, c5, c6, c7, c8 слугують для передачі кодів кольорів меню. Всередині функції використовуються процедури:
procedure screen_save; assembler;
procedure screen_restore; assembler;,
друкування підменю тощо. Основний алгоритм такий: намалювати пункти меню, прочитати клавішу з клавіатури і в залежності від клавіші пересунути вказівник вліво, вправо, вгору чи вниз відповідно. Кожен раз при перемальовці екрану, викликається функція screen_restore для того щоб підпункти меню не накладалися один на одного. Для забезпечення швидкості перемальування екрану, функції зберження та відновлення екрану написані на асемблері. Результат, що видається має тип word. В старшому байті знаходиться номер пункту основного меню, а в молодшому - номер його підпункту. Перевірку в основній програмі можна, наприклад, зробити так:
run:=menu_run(m, 0, 3, 15, 0, 0, 3, 15, 0);
case hi(run) of
1: case lo(run) of
1: ... Дії до пункту 1 підменю 1
2: ... Дії до пункту 2 підменю 1
2: case lo(run) of
1: ... Дії до пункту 1 підменю 2
2: ... Дії до пункту 2 підменю 2
end;
end;
procedure menu_done(m: menu);
Функція деініціалізації, що закінчує роботу меню. Після виклику цієї функції неможна користуватись змінною m.
Сама змінна m має таку структуру:
const
max_of_main = 10; максимальна кількість пунктів основного меню
max_of_item = 30; максимальна довжина тексту назви пункта
type
menu = record
mains: integer; кількість пунктів основного меню
current: integer; поточний виділений пункт
item1: array [1..max_of_main] of record масив інформації про кожен з пунктів
text: string[max_of_item]; напис
letter: char; гаряча клавіша
items: integer; кількість підпунктів
current: integer; поточний підпункт
item2: array [1..10] of record інформація про підпункти
procedure screen_save; assembler;
procedure screen_restore; assembler;,
друкування підменю тощо. Основний алгоритм такий: намалювати пункти меню, прочитати клавішу з клавіатури і в залежності від клавіші пересунути вказівник вліво, вправо, вгору чи вниз відповідно. Кожен раз при перемальовці екрану, викликається функція screen_restore для того щоб підпункти меню не накладалися один на одного. Для забезпечення швидкості перемальування екрану, функції зберження та відновлення екрану написані на асемблері. Результат, що видається має тип word. В старшому байті знаходиться номер пункту основного меню, а в молодшому - номер його підпункту. Перевірку в основній програмі можна, наприклад, зробити так:
run:=menu_run(m, 0, 3, 15, 0, 0, 3, 15, 0);
case hi(run) of
1: case lo(run) of
1: ... Дії до пункту 1 підменю 1
2: ... Дії до пункту 2 підменю 1
2: case lo(run) of
1: ... Дії до пункту 1 підменю 2
2: ... Дії до пункту 2 підменю 2
end;
end;
procedure menu_done(m: menu);
Функція деініціалізації, що закінчує роботу меню. Після виклику цієї функції неможна користуватись змінною m.
Сама змінна m має таку структуру:
const
max_of_main = 10; максимальна кількість пунктів основного меню
max_of_item = 30; максимальна довжина тексту назви пункта
type
menu = record
mains: integer; кількість пунктів основного меню
current: integer; поточний виділений пункт
item1: array [1..max_of_main] of record масив інформації про кожен з пунктів
text: string[max_of_item]; напис
letter: char; гаряча клавіша
items: integer; кількість підпунктів
current: integer; поточний підпункт
item2: array [1..10] of record інформація про підпункти
The online video editor trusted by teams to make professional video in
minutes
© Referats, Inc · All rights reserved 2021