TStatusLine Menus
+---------+ | TObject | +----+----+ +----+----+ | TView | +----+----+ +======+======+ | TStatusLine | +=============+
Объект TStatusLine - это видимый элемент, обычно отображаемый внизу экрана. Типичная строка статуса отображает список доступных горячих клавиш, свободную память, время дня, текущий режим редактирования и подсказки пользователя. Отображаемые элементы устанавливаются в связанный список, используя InitStatusLine в TApplication и отображаемый элемент зависит от контекста подсказки текущего видимого элемента. Как и полоса меню и панель экрана, строка статуса обычно принадлежит группе TApplication. Элементы строки статуса - это записи типа TStatusItem, которые содержат поля для текстовой строки, отображаемой в строке статуса, кода ключа, связываемого с горячей клавишей (обычно функциональная клавиша или комбинация Alt -клавиша) и команды, генерируемой, если отображаемый текст отмечен мышкой или нажата горячая клавиша. Строка статуса отображает контекстно-ориентированную подсказку. Каждый объект строки статуса содержит связанный список строк статуса Defs (типа TStatusDef), которые определяют диапазон контекстных подсказок и список элементов статуса, отображаемый, когда текущий контекст подсказки находится в этом диапазоне. Кроме того, может отображаться предопределенная строка в соответствии с текущим контекстом подсказки.
Поля
Items Items: PStatusItem; Только чтение Указатель на текущий связанный список записей типа TStatusItem.
См. так же: TStatusItem
Defs Defs: PStatusDef; Только чтение Указатель на текущий связанный список записей типа TStatusDef. Список для использования определяется текущим контекстом подсказки.
См. так же: TStatusDef, TStatusLine.Update, TStatusLine.Hint
Методы
Init constructor Init(var Bounds: TRect; ADefs: PStatusDef); Создает объект TStatusLine с размером Bounds, вызывая TView.Init. Бит ofPreProcess в Options устанавливается, EventMask устанавливается, включая evBroadcast и GrowMode устанавливается в gfGrowLoY + gfGrowHiX + gfGrowHiY. Поле Defs устанавливается в ADefs. Если ADefs - nil, Items устанавливается в nil, иначе Items устанавливается в ADefs^.Items.
См. так же: TView.Init
Load constructor Load(var S: TStream); Создает объект TStatusLine и загружает его из потока S, вызывая TView.Load, затем читая Defs и Items из потока.
См. так же: TView.Load, TStatusLine.Store
Done destructor Done; virtual; Перекрывается: Никогда Освобождает все Items и Defs в объекте TStatusLine, затем вызывает TView.Done.
См. так же: TView.Done
Draw procedure Draw; virtual; Перекрывается: Редко Рисует строку статуса, выводя строку Text для каждого элемента статуса, затем все подсказки, определенные для данного текущего контекста подсказки за полосой разделителя.
См. так же: TStatusLine.Hint
GetPalette function GetPalette: PPalette; virtual; Перекрывается: Иногда Возвращает указатель на палитру по умолчанию CStatusLine.
HandleEvent procedure HandleEvent(var Event: TEvent); virtual; Перекрывается: Редко Обрабатывает события, передаваемые строке статуса, вызывая TView.HandleEvent, затем проверяет на 3 вида специальных событий. Отметки мышкой, которые попадают внутрь прямоугольника, занимаемого элементом статуса, генерируют командное событие с Event.What, установленного в Command, для этого элемента статуса. События от клавиатуры сравниваются с полем KeyCode каждого элемента; соответствие вызывает командное событие с Command этого элемента. Общие события с командой cmCommand, SetChanged заставляют строку статуса перерисовывать себя, чтобы отразить любые горячие клавиши, которые могут быть разрешены или запрещены.
См. так же: TView.HandleEvent
Hint function Hint(AHelpCtx: Word): String; virtual; Перекрывается: Часто Этот псевдоабстрактный метод возвращает пустую строку. Он должен быть перекрыт для обеспечения строки контекстно-ориентированной подсказки для аргумента AHelpCtx. Непустая строка будет рисоваться в строке статуса после полосы разделителя.
См. так же: TStatusLine.Draw
Store procedure Store(var S: TStream); Сохраняет объект TStatusLine в потоке S, вызывая TView.Store, затем записывая все определения статуса и их ассоциированные списки элементов в поток. Сохраненный объект может быть восстановлен используя TStatusLine.Load.
См. так же: TView.Store, TStatusLine.Load
Update procedure Update; Выбирает корректный Items из списка Defs. В зависимости от текущего контекста подсказки, затем вызывает DrawView для перерисовки строки статуса, если элементы были изменены.
См. так же: TStatusLine.Defs
Палитра
Строки статуса используют палитру по умолчанию CStatusLine для отображения в элементы со 2 по 7-й в палитре стандартной программы.
1 2 3 4 5 6 +====+====+====+====+====+====+ CStatusLine | 2 | 3 | 4 | 5 | 6 | 7 | +==+=+==+=+==+=+==+=+==+=+==+=+ Нормальный текст -+ | | | | +-- Выбранный короткий Запрещенный текст -----+ | | +------ Выбранный запрещенный Короткий текст -------------+ +------------ Выбранный нормальный