Информатика -продвинутый курс



ОБОЛОЧКА TURBO-VISION - часть 3


2) метод InitMenuBar устанавливает меню для полосы Меню программы (TApplication содержит полосу меню, но не сами меню);

3) метод InitStatusLine устанавливает текст строки статуса внизу экрана; этот текст обычно отображает сообщение о текущем состоянии программы, показывая доступные горячие клавиши или напоминая пользователю о некоторых действиях;

4) метод GreetingBox вызывает диалоговое окно в ответ на элемент меню Greeting; GreetingBox вызывается из метода HadleEvent в ответ на событие, переключаемое выбором элемента меню Greeting; в более сложных программах можно использовать различные методы в ответ на каждый элемент меню, определяемый в начальном меню.

На верхнем уровне абстракции главная программа на Turbo-Vision выглядит аналогично Hello и содержит три метода:

var

HelloWorld: THelloApp;

begin

HelloWorld.Init;

HelloWorld Run;

HelloWorld.Done;

end;

Каждый из этих трех методов требует небольшого пояснения.

Init - это необходимый вызов конструктора. Все объекты, содержащие виртуальные методы, должны быть созданы (через вызов их конструктора) до вызова любых других методов этого объекта. Все конструкторы Turbo-Vision имеют имя Init. Это удобное соглашение, которым мы рекомендуем пользоваться.

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

Почти вся работа программы в Turbo-Vision выполняется внутри метода главной программы Run. Определения метода Run здесь нет, поскольку Run наследуется от родительского объекта TApplication.

Этот метод состоит, главным образом, из цикла repeat...until, показанном здесь в псевдокоде;

repeat

<получить событие>;

<обработать событие>;

until Quit;

Это не точный код, а общая схема реализации Run.


Содержание  Назад  Вперед