Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Базы данных / lab7OBDFoxmenu.doc
Скачиваний:
8
Добавлен:
07.02.2016
Размер:
79.87 Кб
Скачать

Лабораторна работа№7 (2г)

Тема роботи: Організація Foxменю.

Мета роботи: навчитися створювати меню.

Рекомендована література:

  1. Попов а.А. Програмування в середовищі сrбд foxpro 2.0. - м.: Радіо і зв'язок, к.: тоо «Століття», 1995 стор.39-54.

І. Теоретичні відомості

Меню є основною формою діалогу в прикладних системах обробки даних. FOXPRO має винятково розвиті засоби підтримки меню як з об'ємним світловим курсором (світловим "зайчиком") так і з призначеними клавішами.

Крім того в FOXPRO реалізоване ще і кнопкове" (Button) меню. Термін кнопка тут означає не фізичну кнопку на клавіатурі, а деяку область на екрані, якої додані керуючі властивості. "Кнопкове" меню зручно використовувати разом з мишею.

Світлове меню.

Світлове меню являє собою перелік елементів меню, серед яких один є поточний "підсвічений" (відображений іншим світлом чим всі інші пункти меню). Переміщення світлового курсору здійснюється клавішами керування курсором. Вибір у меню виробляється натисканням клавіш Enter і Space (Введення і Пробіл), відмовлення від вибору - клавішею Escape.

Більшість з реалізованих у мові меню є вікнами, тобто вони можуть проектуватися на видиму частину екрана без псування зображення під ним. При деактивації меню екран автоматично відновлюється. Це винятково зручно, наприклад, з екранами редагування даних. Тут можна в будь-який момент натисканням будь-який попередньо закріпленої клавіші викликати меню на екран, зробити необхідний вибір і повернутися назад.

Усі види меню допускають роботу з мишкою, а так само вибір за першою буквою елемента меню. При цьому, якщо встановлено команду SET CONFIRM OFF, натискання клавіші з першою буквою негайно спричинить і вибір даного пункту. Якщо встановлено команду SET CONFIRM ON, то буде потрібно підтвердження натисканням клавіші Enter/Space.

Коли деякі пункти меню починаються на ту саму букву, це може бути незручно. У такому випадку можна буде призначити "гарячі" клавіші. Якщо в рядок меню включені символи "\<", то символ, що коштує праворуч від них, буде виділений кольором. Натискаючи клавішу з цим символом, можна зробити вибір у меню, причому без натискання Enter незалежно від команди SET CONFIRM. Якщо пункт меню починається із символу " \",він буде відображатися на екрані приглушеним кольором і не буде вибиратися (курсор на ньому не фіксується). Якщо пункт (тільки в POPUP меню) складається з двох символів "\-", то йому в меню буде відповідати горизонтальна лінія. Використання таких символів дозволяє видимо (зрительно - рос.) групувати пункти меню, розділяючи їх горизонтальними лініями ("\-"), і навіть давати їм свої підзаголовки("\").

У FOXPRO є дві альтернативні технології побудови меню -

концепція, що продовжується з попередні версії СКБД FoxBASE-2.1, і концепція, яка позичена із СКБД dBASE IY. Найважливіше ідейне розходження може бути відображено термінами "меню-програма" і "меню-об'єкт". Fox-меню є частиною програми, де воно і створюється.

Fox-меню завжди виробляє числові перемінні, фіксуючі зроблений користувачем вибір. Ці перемінні аналізуються далі в програмі, звичайно в структурі DO CASE...ЕNDCASE. Для підтримки можливості постійного повернення воно або команда активації меню, як правило міститься в цикл виду DO WHILE .T. ...ENDDO.

FOX-меню

У FOX-меню можливе створення трьох різних форм меню:

1.Меню з довільно розташованими елементами(меню з підсвічуванням елементів - LIGHTBAR-меню).

2.Вертикальне ("спливаюче"- POPUP-меню).

3.Дворівневе меню (PULLDOWN-меню).

Меню першого типу одночасно визначається і використовується. У меню другого і третього типу процес визначення форми і змісту меню відділений від його використання, що більш зручно.

LIGHTBAR-меню

Для створення такого меню використовуються команди:

Команда

@Y,X PROMTRT <вирс1> [MESSAGE<вирс2>]

видає в позиції Y,X рядок меню (<вирс1>). Інформативність меню може бути посилена включенням у команду фрази MESSAGE(<вирс2>). Тоді в останньому або визначеному командою SET MESSAGE рядку екрана виникне додаткове повідомлення(<вирс2>). Саме меню складається з ряду (до 128) команд PROMPT, що пред'являють у заданих позиціях екрана рядки меню. Переміщення усередині меню користувач здійснює за допомогою натискання клавіш зі стрільцями, причому активний в даний момент рядок меню виділяється контрастним зображенням. Вибір необхідної позиції меню здійснюється за допомогою натискання клавіш Enter і Spase.

До аналогічних результатів веде натискання клавіші, що відповідає найпершому символові з необхідної позиції меню. Для цього зручно, наприклад, пронумерувати всі пункти меню.

Команда

MENU TO < перемінна >

здійснює запам'ятовування цифри, що відповідає порядковому номеру обраного рядка PROMPT у деякої перемінної. Тут мається на увазі номер команди в тексті програми (серед інших команд PROMPT, що відносяться до даного меню), а не номер її позиції на екрані. Натискання клавіші Escape також волоче вихід з меню з занесенням нуля в <перемінну>.

Команда

SET MESSAGE TO [<вир> [LEFT/RIGHT/CENTER]]

застосовується, щоб у рядку <вир> вікна/екрана вивести додаткове повідомлення до пункту меню, на якому коштує курсор, ліворуч, праворуч або в центрі рядку (LEFT,RIGHT або CENTER). У такому меню повинна бути опція MESSAGE з <вир>. Команда SET MESSAGE TO без параметра направляє повідомлення в останній рядок екрана. Команда діє як у Fox-меню, так і в dBASE-меню, але в останньому випадку MESSAGE-повідомлення центрується автоматично.

Приклад

Побудуємо меню з пунктами "Кінець роботи", "Доповнення даних", "Коректування", "Печатка даних" і видачею додаткових повідомлень "Уключите принтер" при виборі позиції меню "Печатка даних" і "Вихід із системи" при виборі позиції кінець роботи".

CLEAR

SET MESSAG TO 16 CENTER

@ 5,31 SAY 'МЕНЮ СИСТЕМИ: '

@ 7,31 PROMPT 'Кінець роботи ' MESSAGE 'Вихід із системи'

@ 9,31 PROMPT 'Доповнення даних'

@ 11,31 PROMPT 'Коректування '

@ 13,31 PROMPT 'Печатка даних ' MESSAG 'Уключите принтер'

MENU TO R

SET MESSAG TO

У прикладі додаткові повідомлення будуть виведені в центрі 16 рядка.

При виборі користувачем рядка КІНЕЦЬ РОБОТИ перемінна R одержить значення 1, при виборі рядка ДОПОВНЕННЯ ДАНИХ-2 і т.д.

Таке меню можна розташувати не тільки вертикально, але і горизонтально і як завгодно. Більш того можна запрограмувати динамічне меню (з числом рядків, що змінюється, і їхнім умістом), адже повідомлення в рядку PROMPT, т.е.<вир1>,можуть бути і перемінними.

Приклад:

use ccc

clear

a=1

set confirm off

@ 15,15 Prompt 'Перегляд'

@ 18,15 Prompt 'Очищення' message 'Команда clear'

menu to a

do case

case a=1

browse

case a=2

clear

endcase

Соседние файлы в папке Базы данных