Создание меню с помощью окон
Определение окна
makewindow (НомерОкна, АтрОкна, АтрРамки, Заголовок, Строка, Столбец, Высота, ШиРина) (integer, integer, integer, string, integer, integer, integer, integer): (все i) (все o)
Строка, столбец – координаты верхнего левого угла.
АтрЭкрана: =7 – позитивное изображение. 112 – негативное изображение. +1 – подчеркивание, +8 – высокое разрешение, +128 – мерцание символа.
Атрибуты рамки: 0 – нет рамки.
Смена текущего окна
(считывание номера)
shiftwindow
(НомерОкна) : (integer)
(i) (o)
Окна перекрываются.
Быстрое переключение между двумя окнами
gotowindow
(НомерОкна) : (integer)
(i)
Окна не перекрываются и работают быстрее, чем shiftwindow.
Очистка текущего окна
clearwindow
Удаление текущего окна
removewindow
/* Создание меню с помощью окон */
predicates
repeat
process
(integer)
show_menu
run_file_utility
goal
run_file_utility.
clauses
run_file_utility:- show_menu,
nl, write ("Нажмите любую клавишу”),
readchar (_), exit.
repeat.
repeat:- repeat.
show_menu:- repeat,
make_window (1, 7, 7), "Главное меню”, 4, 10,
16), 36), nl,
write ("Меню утилит”), nl,
nl,
write ("0 Конец”), nl,
write ("1 Delete file”), nl,
write ("2 Rename”), nl,
write ("3 Create”),
write ("4 Edit”), nl,
write ("Выберите одну из цифр”), nl,
readint (X), X<5,
process (0):- nl, write ("Exit menu”), nl.
process (1):- makewindow (2, 7, 7, "Delete file”, 12, 36, 10, 36),
write ("This will delete file”), nl, nl,
<реализация процесса>,
write ("Press any key for main menu”),
readchar (_), remopvewindow.