Турбо Паскаль 6.0

       

TProgram App


+---------+ | TObject | +----+----+ +----+----+ | TView | +----+----+ +----+----+ | TGroup | +-+--+--+-+ +----------+ | +------------+ +----+----+ +----+-----+ +======+=======+ | TWindow | | TDeskTop | | TProgram | +----+----+ +----------+ +======+=======+ +----+----+ +------+-------+ | TDialog | | TApplication | +---------+ +--------------+

TProgram обеспечивает базовую заготовку для всех стандартных программ на Turbo Vision. Все такие программы должны порождаться от TProgram или его потомка TApplication. TApplication отличается от TProgram только констрактором и дестрактором. 2 типа объекта предоставляются для большей гибкости при создании нестандартных программ. В большинстве случает Ваша программа будет порождаться от TApplication. TProgram порождается от TGroup, поскольку она должна содержать объекты TDeskTop, TStatusLine и TMenuBar.

Методы

Init constructor Init; Перекрывается: Иногда Устанавливает глобальную переменную Application в @Self; вызывает TProgram.InitScreen для инициализации переменных, определяющих режим экрана; вызывает TGroup.Init передавая прямоугольник Bounds равный полному экрану; устанавливает поле State в sfVisible + sfSelected + sfFocused + sfModal + sfExposed; устанавливает поле Options в 0; устанавливает поле Buffer в адрес экранного буфера, заданного в ScreenBuffer; наконец вызывает InitDeskTop, InitStatusLine и InitMenuBar и вставляет эти видимые элементы в группу TProgram.

См. так же: TGroup.Init, TProgram.InitDeskTop, TProgram.InitStatusLine, TProgram.InitMenuBar

Done destructor Done; virtual; Перекрывается: Иногда Освобождает объекты DeskTop, MenuBar и StatusLine и устанавливает глобальную переменную Application в nil.

См. так же: TGroup.Done

GetEvent procedure GetEvent(var Event: TEvent); virtual; Перекрывается: Редко По умолчанию TView.GetEvent просто вызывает GetEvent своего владельца и поскольку TProgram (или TApplication) в конечном итоге являются владельцем любого видимого элемента, любой вызов GetEvent будет приводить к TProgram. GetEvent (если только видимый элемент не перекроет GetEvent) TРrogram.GetEvent вначале проверяет, не сгенерировал ли TProgram.PutEvent событие. Если да, то GetEvent возвращает это событие. Если нет пришедшего события, GetEvent вызывает GetMouseEvent; если тот возвращает evNothing, вызывается GetKeyEvent, если оба возвращают evNothing: указывая, что нет ввода от пользователя, GetEvent вызывает TProgram.Idle, чтобы запустить "фоновые" задачи, выполняемые во время ожидания ввода от пользователя. До возврата GetEvent передает все события evKeyDown и evMouseDown в StatusLine для отображения в ассоциированные события от горячих клавиш evCommand.


См. так же: TProgram.PutEvent, GetMouseEvent, GetKeyEvent

GetPalette function GetPalette: PPalette; virtual; Перекрывается: Иногда Возвращает указатель на палитру, заданную индексом палитры в глобальной переменной AppPalette. TProgram поддерживает 3 палитры: apColor, apBlackWhite и apMonochrome. Переменная AppPalette инициализируется в TProgram.InitScreen.

См. так же: TProgram.InitScreen, AppPalette, apXXXX константы

HandleEvent procedure HandleEvent(var Event: TEvent); virtual; Перекрывается: Всегда Обрабатывает событие от клавиатуры от Alt-1 до Alt-9 генерируя событие evBroadcast с значением Command равным cmSelectWindowNum и значением InfoInt 19. TWindow.HandleEvent реагирует на такие сообщения, выбирая окно с данным номером. Обрабатывает событие evCommand со значением Command равным cmQuit вызывая EndModal(cmQuit) которое приводит к завершению программы. TProgram.Handle почти всегда перекрывается для введения обработки команд, специфичных для Вашей программы.



См. так же: TGroup.HandleEvent

Idle procedure Idle; virtual; Перекрывается: Иногда Idle вызывается из TProgram.GetEvent когда очередь событий пуста, позволяя программе выполнять фоновые задачи при ожидании ввода от пользователя. По умолчанию TProgram.Idle вызывает StatusLine^.Update, чтобы разрешить строке статуса обновлять себя в соответствии с текущим констекстом подсказки. Затем, если набор команд изменился после последнего вызова TProgram.Idle, генерируется evBroadcast со значением Command равным cmCommandSetChanged, чтобы разрешить видимому элементу, который зависит от этого набора команд, разрешить или запретить себя. Если Вы перекрываете Idle, всегда вызывайте наследуемый Idle. Так же убедитесь, что любые задачи, выполняемые в Вашем Idle, не занимают слишком большого времени в программе, поскольку это будет блокировать ввод пользователя.

InitDeskTop procedure InitDeskTop; virtual; Перекрывается: Редко Создает объект TDeskTop для программы и сохраняет указатель на него в глобальной переменной DeskTop. InitDeskTop вызывается в TProgram.Init и никогда не должен вызываться прямо. InitDeskTop может быть перекрыт созданием потомка от TDeskTop.



См. так же: TProgram.Init, TDeskTop, TWindow.Init

InitMenuBar procedure InitMenuBar; virtual; Перекрывается: Всегда Создает объект TMenuBar для программы и сохраняет указатель на него в глобальной переменной в MenuBar. InitMenuBar вызывается в TProgram.Init и никогда не должен вызываться прямо. InitMenuBar почти всегда перекрывается потомком от TMenuBar, определенным пользователем.

См. так же: TProgram.Init, TMenuBar, TWindow.Init

InitScreen procedure InitScreen; virtual; Перекрывается: Иногда Вызывается из TProgram.Init и TProgram.SetScreenMode каждый раз, когда режим экрана инициализируется или изменяется. Это метод, который действительно выполняет обновление и настройку переменных, определяющих режим экрана для размера тени, маркеров и палитры программы.

См. так же: TProgram.Init, TProgram.SetScreenMode

InitStatusLine procedure InitStatusLine; virtual; Перекрывается: Всегда Создает объект TStatusLine для программы и сохраняет указатель на него в глобальной переменной в StatusLine. InitStatusLine вызывается в TProgram.Init и никогда не должен вызываться прямо. InitStatusLine почти всегда перекрывается потомком от TStatusLine, определенным пользователем.

См. так же: TProgram.Init, TStatusLine

OutOfMemory procedure OutOfMemory; virtual; Перекрывается: Часто OutOfMemory вызывается из TProgram.ValidView для определения, что LowMemory - True. OutOfMemory должна сообщать пользователю, что недостаточно памяти для выполнения операции. Например с использованием программы MessageBox из модуля StdDlg:

procedure TMyApp.OutOfMemory; begin MessageBox('Not enough memory to complete operation.', nil, mfError + mfOKButton); end;

См. так же: TProgram.ValidView, LowMemory

PutEvent procedure PutEvent(var Event: TEvent); virtual; Перекрывается: Редко По умолчанию TView.PutEvent просто вызывает PutEvent своего владельца и поскольку объект TProgram (или TApplication) в конечном счете является владельцем любого видимого элемента, каждый вызов PutEvent будет приводить к TProgram.PutEvent (если только видимый элемент не перекрыл PutEvent). Program.PutEvent сохраняет копию записи PutEvent в буфере и следующий вызов в TPreogram.GetEvent будет возвращать эту копию.



См. так же: TProgram.GetEvent, TView.PutEvent

Run procedure Run; virtual; Перекрывается: Редко Выполняет TProgram, вызывая метод Execute (который TProgram наследует от TGroup).

См. так же: TGroup.Execute

SetScreenMode procedure SetScreenMode(Mode: Word); Устанавливает режим экрана. Mode - одна из констант smCO80, smBW80 или smMono с дополнительным smFont8x8 для выбора 43- или 50-строчного режима на EGA или VGA. SetScreenMode скрывает мышку, вызывает SetVideoMode для изменения режима экрана, вызывает InitScreen для инициализации переменных режима экрана, назначает ScreenBuffer в TProgram.Buffer, вызывает ChangeBounds с новым прямоугольником экрана и, наконец, показывает мышку.

См. так же: TProgram.InitScreen, SetVideoMode, smXXXX константа

ValidView function TProgram.ValidView(P: PView): PView; Проверяет правильность вновь созданных видимых элементов, возвращая Р, если видимый элемент правильный и nil - если нет. Во-первых, если Р - nil, возвращается значение nil. Во-вторых, если LowMemory - True, при вызове ValidView видимый элемент, заданный в Р, освобождается, вызывается метод OutOfMemory и возвращается значение nil. В-третьих, если вызов P^.Valid(cmValid) возвращает False, видимый элемент освобождается и возвращается значение nil. Иначе видимый элемент считается правильным и возвращается указатель на этот видимый элемент Р. ValidView часто используется для проверки правильности нового видимого элемента до вставки его во владельца. Например, следующий оператор показывает типичную последовательность создания, проверки и вставки нового окна в панель экрана (TProgram.ValidView и TGroup.Insert знают как игнорировать возможные указатели nil, возникающие в результате ошибок).

DeskTop^.Insert(ValidView(New(TMyWindow, Init(.))));

См. так же: LowMemory, TProgram.OutOfMemory, Valid методы

Палитра

Палитра для объекта-программа управляет конечным отображением цвета всех видимых элементов программы. Все отображения других палитр приводят к выбору элемента в палитре программы, которая задает атрибуты текста. Первый элемент используется в TBackground для цветов фона. Элементы со 2 по 7 используются меню и строкой статуса.



1 2 3 4 5 6 7 +===+===+===+===+===+===+===+ CColor |$71|$70|$78|$74|$20|$28|$24| +===+===+===+===+===+===+===+ +===+===+===+===+===+===+===+ CBlackWhite |$70|$70|$78|$7F|$07|$07|$0F| +===+===+===+===+===+===+===+ +===+===+===+===+===+===+===+ CMonochrome |$70|$07|$07|$0F|$70|$70|$70| +=+=+=+=+=+=+=+=+=+=+=+=+=+=+ Фон ----+ | | | | | +-- Короткий выбор Нормальный текст --+ | | | +------ Запрещенный выбор Запрещенный текст -----+ | +---------- Нормальный выбор Короткий текст ------------+

Элементы в 8 по 15 используются голубыми окнами.

8 9 10 11 12 13 14 15 +===+===+===+===+===+===+===+===+ CColor |$17|$1F|$1A|$31|$31|$1E|$71|$00| +===+===+===+===+===+===+===+===+ +===+===+===+===+===+===+===+===+ CBlackWhite |$07|$0F|$07|$70|$70|$07|$70|$00| +===+===+===+===+===+===+===+===+ +===+===+===+===+===+===+===+===+ CMonochrome |$07|$0F|$07|$70|$70|$07|$70|$00| +=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+ Рамка пассивна + | | | | | | +-- Зарезервировано Рамка активна -----+ | | | | +- Выбранный текст скроллера Кнопка рамки ----------+ | | +---- Нормальный текст скроллера Страница скроллинга -------+ +-------- Зарезервировано

Элементы с 16 по 23 используются бирюзовыми окнами.

16 17 18 19 20 21 22 23 +===+===+===+===+===+===+===+===+ CColor |$37|$3F|$3A|$13|$13|$3E|$21|$00| +===+===+===+===+===+===+===+===+ +===+===+===+===+===+===+===+===+ CBlackWhite |$07|$0F|$07|$70|$70|$07|$70|$00| +===+===+===+===+===+===+===+===+ +===+===+===+===+===+===+===+===+ CMonochrome |$07|$0F|$07|$70|$70|$07|$70|$00| +=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+ Рамка пассивна + | | | | | | +-- Зарезервировано Рамка активна -----+ | | | | +- Выбранный текст скроллера Кнопка рамки ----------+ | | +---- Нормальный текст скроллера Страница скроллинга -------+ +-------- Зарезервировано

Элементы с 24 по 31 используются серыми окнами.

24 25 26 27 28 29 30 31 +===+===+===+===+===+===+===+===+ CColor |$70|$7F|$7A|$13|$13|$70|$7F|$00| +===+===+===+===+===+===+===+===+ +===+===+===+===+===+===+===+===+ CBlackWhite |$70|$7F|$7F|$70|$07|$70|$07|$00| +===+===+===+===+===+===+===+===+ +===+===+===+===+===+===+===+===+ CMonochrome |$70|$70|$70|$07|$07|$70|$07|$00| +=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+ Рамка пассивна + | | | | | | +-- Зарезервировано Рамка активна -----+ | | | | +- Выбранный текст скроллера Кнопка рамки ----------+ | | +---- Нормальный текст скроллера Страница скроллинга -------+ +-------- Зарезервировано



Элементы с 32 по 63 используются диалоговыми окнами. См. TDialog для отдельных элементов.

32 33 34 35 36 37 38 39 40 +===+===+===+===+===+===+===+===+===+ CColor |$17|$1F|$1A|$31|$31|$31|$1E|$71|$00| +===+===+===+===+===+===+===+===+===+ +===+===+===+===+===+===+===+===+===+ CBlackWhite |$07|$0F|$07|$70|$70|$70|$07|$70|$00| +===+===+===+===+===+===+===+===+===+ +===+===+===+===+===+===+===+===+===+ CMonochrome |$07|$0F|$07|$70|$70|$70|$07|$70|$00| +=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+ Рамка пассивна + | | | | | | | +-- Короткая метка Рамка активна -----+ | | | | | +- Подсвеченная метка Кнопка рамки ----------+ | | | +----- Нормальная метка Страница скроллинга -------+ | +--------- Статический текст Элементы управления -----------+ скроллинга

41 42 43 44 45 46 47 48 49 +===+===+===+===+===+===+===+===+===+ CColor |$17|$1F|$1A|$31|$31|$31|$1E|$71|$00| +===+===+===+===+===+===+===+===+===+ +===+===+===+===+===+===+===+===+===+ CBlackWhite |$07|$0F|$07|$70|$70|$70|$07|$70|$00| +===+===+===+===+===+===+===+===+===+ +===+===+===+===+===+===+===+===+===+ CMonochrome |$07|$0F|$07|$70|$70|$70|$07|$70|$00| +=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+ Нормальная кнопка | | | | | | | +-- Короткий кластер Кнопка по умолчанию+ | | | | | +----- Выбранный кластер Выбранная кнопка-------+ | | | +-------- Нормальный кластер Запрещенная кнопка---------+ | +------------ Тень кнопки Короткая кнопка ---------------+

50 51 52 53 54 55 56 +===+===+===+===+===+===+===+ CColor |$1F|$2F|$1A|$20|$72|$31|$31| +===+===+===+===+===+===+===+ +===+===+===+===+===+===+===+ CBlackWhite |$0F|$70|$0F|$07|$70|$70|$70| +===+===+===+===+===+===+===+ +===+===+===+===+===+===+===+ CMonochrome |$07|$70|$07|$07|$70|$07|$07| +=+=+=+=+=+=+=+=+=+=+=+=+=+=+ Нормальная строка----+ | | | | | +- Элементы управления ввода | | | | | скроллинга окна истории Выбранная строка ------+ | | | +----- Страница скроллинга ввода | | | окна истории Стрелки строки ввода --------+ | +---------- Стороны истории Стрелка истории -----------------+

57 58 59 60 61 62 63 +===+===+===+===+===+===+===+ CColor |$30|$2F|$3E|$31|$13|$00|$00| +===+===+===+===+===+===+===+ +===+===+===+===+===+===+===+ CBlackWhite |$07|$70|$0F|$07|$07|$00|$00| +===+===+===+===+===+===+===+ +===+===+===+===+===+===+===+ CMonochrome |$07|$70|$0F|$07|$07|$00|$00| +=+=+=+=+=+=+=+=+=+=+=+=+=+=+ Нормальный просмотр--+ | | | | | +-- Зарезервировано списка | | | | | Активный просмотр ------+ | | | +------ Зарезервировано списка | | | Выбранный просмотр списка ---+ | +---------- Информационная Разделитель просмотра списка ----+ панель


Содержание раздела







Forekc.ru
Рефераты, дипломы, курсовые, выпускные и квалификационные работы, диссертации, учебники, учебные пособия, лекции, методические пособия и рекомендации, программы и курсы обучения, публикации из профильных изданий