Иллюстрированный самоучитель по Tirbo Pascal




Формирование строки статуса


Стандартный вид экрана, показанный на рис. 15.1, можно изменять. Попробуем придать ему некоторый специфический для нашей программы вид. Например, заменим в строке статуса стандартное сообщение

Alt-X Exit 

на русифицированное

Alt-X Выход

Таким образом, нам необходимо модифицировать стандартное поведение объекта Notebook. Для этого мы должны отыскать в типе TApplication метод, ответственный за создание строки статуса. Если мы обратимся к прил.П6, то обнаружим, что объект типа TApplication содержит методы Init и Done, с помощью которых создаются и уничтожаются экземпляры объекта, но в нем нет метода, ответственного за строку статуса. Однако из таблицы наследования нетрудно определить, что этот метод (InitStatusLine) он наследует от своего родителя TProgram. Как изменить работу метода? В рамках объектно-ориентированной библиотеки для этого поступают следующим образом: объявляется объект-потомок от стандартного объекта, поведение которого необходимо изменить, и в новом объекте описывается свой метод, ответственный за это поведение.

Изменим программу следующим образом;

Uses Арр, Objects, Menus, Drivers, Views; 

type

TNotebook = object (TApplication) {Создаем объект-потомок от TApplication} 

Procedure InitStatusLine; Virtual; {Перекрываем старый метод InitStatusLine новым} 

end;

{-----------}

Procedure TNotebook. InitStatusLine;

{Описание нового метода, с помощью которого создается строка статуса}

var

R: TRect; {Границы строки статуса} 

begin

GetExtent (R) ; {Получаем в R координаты всего экрана} 

R.A.Y := pred(R.B.Y) ; {Помещаем в R координаты строки статуса}

{Создаем строку статуса:} 

StatusLine := New(PStatusLine, Init(R, 

{Определяем один вариант строки статуса:} 

NewStatusDef (0, $FFFF, {Устанавливаем для этого варианта максимальный диапазон контекстной справочной службы}

{Определяем единственную клавишу Alt-X: } 

NewStatusKey('~Alt-X~ Выход' , kbAltX, cmQuit, 

NIL), {Нет других клавиш} 




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