Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл: Источник:
Скачиваний:
100
Добавлен:
04.03.2014
Размер:
235.01 Кб
Скачать

. Использование объектов при создании меню.

Создание меню - одна из наиболее трудоемких задач программирования, и для ее решения весьма успешно используются средства ООП. В настоящее время создан целый ряд библиотек объектов, используемых при создании меню. Прежде, чем изучать подобные библиотеки, желательно ознакомиться с общими принципами их построения. С этой целью попытаемся разработать упрощенный вариант такой библиотеки.

В качестве примера возьмем программу «Записная книжка». Предполагается, что она должна осуществлять: создание новой книжки (файла), добавление записей (фамилии и телефона), поиск записей по фамилии.

Создание библиотеки объектов для этой программы начнем с анализа оконных форм программы.

В начале работы программы на экране должно появляться главное меню системы (см. Рис. 2.2).

Рис. 2.2. Окно «Главное меню».

При выборе пункта «Создать или открыть книжку» на экране должно появиться окно ввода имени файла (см. Рис. 2.3), причем до ввода имени файла выбор прочих пунктов меню, кроме «Завершения работы» должен быть блокирован. После ввода имени файла, которое должно быть проверено с точки зрения синтаксиса имен файлов, мы должны вернуться в главное меню.

Рис. 2.3. Окно ввода имени файла.

При выборе пункта «Добавление записей» на экране должна появиться форма ввода записей (см. Рис. 2.4), которая содержит поля ввода и локальное меню. После завершения добавления записей мы вновь должны вернуться в главное меню.

При выборе пункта «Поиск телефона» на экране должна появляться форма поиска записей (см. Рис. 2.5), которая содержит поле ввода фамилии, поле вывода телефона и локальное меню. После завершения поиска мы вновь должны вернуться в главное меню.

Выход из системы должен выполняться при выборе соответствующего пункта меню или при нажатии клавиши Esc.

Рис. 2.4. Форма ввода записей. Рис. 2.5. Форма поиска записей.

По результатам анализа оконных представлений составим иерархию объектов (см. Рис. 2.6). При этом постараемся разработать как можно более универсальные представления, которые можно будет настроить на реальные формы.

Рис. 2.6. Иерархия объектов для создания меню.

Основное окно иерархии - окно со строкой текста Twin (см. Рис.2.7а). От этого объекта наследуются остальные. Кроме того, он многократно входит в окна иерархии, позволяя создавать нужные формы. В объектах-потомках строка текста становится заголовком окна или полем ввода в зависимости от вида использования. Объект включает поля, определяющие параметры окна на экране и параметры текста в окне. МетодDraw используется для отображения окна на экране, а методSetAttr- для изменения цвета фона и цвета символов.

TInput - пассивное окно ввода (см. Рис. 2.7 б), которое закрывается, если требуемая информация введена правильно (Error - метод проверки ввода). Ввод информации осуществляется на место текста во внутреннем окнеInp (методInput). Объект также содержит процедуру очистки поля вводаClear.

TMessage - активное окно сообщения (см. Рис. 2.7 в), ожидающее нажатия любой клавиши (методRun). Внутреннее окно- кнопкаOk. МетодShow используется для отображения окна на экране (без очистки экрана). МетодEnter-пустой.

TMenu - также активное окно, которое требует выбора нужного пункта меню (см. Рис. 2.8 г). Само меню может содержать не более 10 пунктов и задается специальным массивом оконmasalt типаTwin. Конкретное количество пунктов определяетсяnalt, а текущий номер пункта хранится вnpos. МетодShow используется для отображения окна на экране (со стиранием предыдущей картинки), методRun реализует выбор пункта, а методEnter (заменяемый) осуществляет обработку выбора пункта меню (при нажатии клавиши Enter).

TForm - активное окно - форма, содержащая настраиваемые поля вводаmasinp типаTInput (не более 10), количество которых указано вninput, и меню, наследуемое отTMenu (см. Рис. 2.7 д). Объект имеет собственные методыShowиEnterи содержит методы, выполняющие операции ввода -Inputи очистку полей ввода -Clear.

Соседние файлы в папке Методичка С++