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

TWindow Views


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

Объект TWindow - это группа, которая обычно владеет объектом TFrame, объектом интерьера TScroller и одним или двумя объектами TScrollBar. Объект TFrame задает обычную рамку, размещает необязательный заголовок и номер и функциональные кнопки (закрытия, масштабирования, перемещения). Объекты TWibdow имеют встроенные возможности перемещения и масштабирования с помощью мышки и клавиатуры. Они могут масштабироваться и закрываться отметкой мышки соответствующих кнопок. Они так же "знают" как работать с полосами скроллинга и скроллера. Окна с номерами от 1 до 9 могут выбираться клавишами Alt-n (n от 1 до 9).

Поля

Flags Flags: Byte; Чтение/Запись Поле Flags содержит комбинацию следующих бит:

+ TWindow.Flags + | | msb lsb +=+=+=+=+=+=+=+=+ +++=+=+++++++++++ +--+--+ | | | +- wfMove = $01 | | | +--- wfGrow = $02 Неопределено | +----- wfClose = $04 +------- wfZoom = $08

Описание флагов окна см. в "Константы флагов окна wfXXXX" главы 14.

ZoomRect ZoomRect: TRect; Только чтение Нормальные несмасштабированные границы окна.

Number Number: Integer; Чтение/Запись Номер этого окна. Если TWindow.Number в диапазоне 1 - 9, номер будет появляться в заголовке рамки и окно может быть выбрано клавишами Alt-n (n от 1 до 9).

Palette Palette: Integer; Чтение/Запись Определяет какая палитра окна будет использоваться: wpBlueWindow, wpCyanWindow, wpGrayWindow. Палитра по умолчанию wpBlueWindow.

См. так же: TWindow.GetPalette, wpXXXX константы

Frame Frame: PFrame; Только чтение Frame - это указатель на объект TFrame, связанный с окном.

См. так же: TWindow.InitFrame

Title Title: RString; Чтение/Запись Строка символов, определяющая (необязательный) заголовок, который появляется в рамке.




Методы

Init constructor Init( var Bounds: TRect; ATitle: TTitleStr; ANumber: Integer); Вызывает TGroup.Init(Bounds). Устанавливает State в sfShadow. Устанавливает по умолчанию Options в (ofSelectable + ofTopSelect). Устанавливает GrowMode в gfGrowAll + gfGrowRel. Устанавливает Flags в (wfMove + wfGrow + wfClose + wfZoom). Устанавливает поле Title в NewStr(ATitle), поле Number в ANumber. Вызывает InitFrame, и если поле Frame не nil, вставляет его в группу окна. Наконец, устанавливает ZoomRect в Bounds.

См. так же: TFrame.InitFrame

Load constructor Load(var S: TStream); Создает и загружает окно из потока S, вызывая TGroup.Load, затем читая дополнительные поля, введенные в TWindow.

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

Done destructor Done; virtual; Перекрывается: Иногда Освобождает окно и подэлементы.

Close procedure Close; virtual; Перекрывается: Редко Закрывает и освобождает окно обычно в ответ на командное событие cmClose. Соответствует вызову дестрактора Done.

GetPalette function GetPalette: PPalette; virtual; Перекрывается: Иногда Возвращает указатель на палитру, заданную индексом палитры в поле Palette.

См. так же: TWindow.Palette

GetTitle function GetTitle(MaxSize: Integer): TTitleStr; virtual; Перекрывается: Редко Должна возвращать строку заголовка окна. Если строка заголовка больше, чем MaxSize символов, GetTitle должна пытаться сократить ее; иначе она будет отсекаться отбрасыванием текста после MaxSize символов. TFrame.Draw вызывает Owner^.GetTitle для получения строки текста, отображаемой в рамке. По умолчанию GetWindow.Title возвращает строку Title^ или пустую строку, если поле Title равно nil.

См. так же: TWindow.Title, TFrame.Draw

HandleEvent procedure HandleEvent(var Event: TEvent); virtual; Перекрывается: Часто Вначале вызывает TGroup.HandleEvent, затем обрабатывает специфические для TWindow события: события evCommand обрабатываются, если поле TWindow.Flags разрешает эту операцию: cmResize (переместить или изменить размер окна, используя метод TView.DrawView), cmClose (закрыть окно, используя метод TWindow.Close) и cmZoom (масштабировать окно, используя метод TWindow.Zoom). События evKeyDown со значением KeyCode, равным kbTab или kbShiftTab обрабатываются, выбирая следующий или предыдущий выбираемый подэлемент (если он существует). Событие evBroadcast со значением Command, равным cmSelectWindowNum, обрабатывается выбором окна, если поле Event.InfoInt равно TWindow.Number.



См. так же: TGroup.HandleEvent, wfXXXX константы

InitFrame procedure InitFrame; virtual; Перекрывается: Редко Создает объект TFrame для окна и сохраняет указатель на эту рамку в поле TWindow.Frame. InitFrame вызывается из TWindow.Init и никогда не должен вызываться прямо. InitFrame может быть перекрыт для создания экземпляра объекта, порожденного от TFrame.

См. так же: TWindow.Init

SetState procedure SetState(AState: Word; Enable: Boolean); virtual; Перекрывается: Редко Вначале вызывает TGroup.SetState. Затем, если AState равно sfSelected, активизирует или деактивизирует окно и все его подэлементы, используя вызов SetState(sfActive, Enable) и вызов TView.EnebleCommands или TView.DisableCommands для cmNext, cmPrev, cmResize, cmClose и cmZoom.

См. так же: TGroup.SetState, EnableCommands, DisableCommands

SizeLimits procedure SizeLimits(var Min, Max: TPoint); virtual; Перекрывается: Редко Перекрывает TView.SizeLimits. Вызывает TView.SizeLimits, затем изменяет Min на значение, хранимое в глобальной переменной MinWindowSize.

См. так же: TView.SizeLimits, MinVinSize переменная

StandardScrollBar function StandardScrollBar(AOptions: Word): PScrollBar; Создает, вставляет и возвращает указатель на "стандартную" полосу скроллинга для окна. "Стандартный" означает, что полоса скроллинга вставляется в рамку окна не закрывая углов или кнопки масштабирования. Параметр AOptions может быть либо sbGorizontal для создания горизонтальной полосы скроллинга внизу окна, либо sbVertical для создания вертикальной полосы скроллинга в правой стороне окна, либо может быть скомбинировано с sbHandleKeyboard, чтобы разрешить полосе скроллинга откликаться на клавиши стрелок и страниц, а не только отметок от мышки.

См. так же: sbXXXX константы scroll bar

Store procedure TWindow.Store(var S: TStream); Сохраняет окно в потоке S, вызывая TGroup.Store, затем записывая дополнительные поля, определенные в TWindow.

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

Zoom procedure TWindow.Zoom; virtual; Перекрывается: Редко Масштабирует окно. Этот метод обычно вызывается в ответ на команду cmZoom (генерируемую при отметке кнопки масштабирования). Zoom принимает во внимание относительные размеры окна и его владельца, и значение ZoomRect.



См. так же: cmZoom, ZoomRect

Палитра

Объекты окна используют палитры по умолчанию CBlueWindow (для текстовых окон), CCyanWindow (для сообщений) и CGrayWindow (для диалоговых окон).

1 2 3 4 5 6 7 8 +===+===+===+===+===+===+===+===+ CGrayWindow | 24| 25| 26| 27| 28| 29| 30| 31| +===+===+===+===+===+===+===+===+ +===+===+===+===+===+===+===+===+ CCyanWindow | 16| 17| 18| 19| 20| 21| 22| 23| +===+===+===+===+===+===+===+===+ +===+===+===+===+===+===+===+===+ CBlueWindow | 8 | 9 | 10| 11| 12| 13| 14| 15| +=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+ Пассивная -+ | | | | | | +-- Зарезервировано рамка | | | | | | Активная рамка ----+ | | | | +---- Выбранный текст | | | | скроллера Кнопка рамки ----------+ | | +-------- Нормальный текст | | скроллера Страница полосы -----------+ +------------ Зарезервировано скролинга


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