18.3.15. TStatusBar - информационная панель

Компонент TStatusBar предназначен для создания панелей состояния, которые обычно располагаются в нижней части основной формы. Компонент может иметь несколько секций, а также кнопку изменения размеров окна, в которое он помещен.

Рис. 18.31 . Пример компонента с тремя панелями и кнопкой изменения размеров окна

На рис. 18.31 показан компонент TStatusBar с тремя панелями и кнопкой изменения размеров окна, созданный таким обработчиком события OnCreate для формы Form1(предварительно на пустую форму положите компонент TSatusBar):

procedure TFormI.FormCreate(Sender: TObject);

var

Panel: TStatusPanel;

k: Integer;

begin

with StatusBarl do

for k := 0 to 2 do

begin

Panel := Panels.Add;

Panel.Text := 'Панель №' + IntToStr(k);

Panel.. Width := Forml. Width div 3

end;

end;

С компонентом связывается объект класса TStatusPanels, который определяет панели компонента. Каждая панель относится к классу TstatusPanel и имеет такие свойства:

property Alignment: TAlignment; | Определяет выравнивание текста относительно границ секции; taLeftJustify: прижимается влево; taCenter - центрируется по горизонтали; taRightJustify - прижимается вправо
property Bevel: TStatusPanel-Bevel; | Определяет стиль рамки секции: pbNone -нет рамки; pbLowered - вдавленная рамка; pbRaised - приподнятая рамка
type TStatusPanelStyle = (psText, psOwnerDraw); property Style: TStatusPanelStyle; property Text: String; property Width: Integer; | Определяет способ формирования изображения панели: psText - панель содержит только текст и изображается автоматически; psOwnerDraw - панель прорисовывается программой Определяет текст надписи в секции Определяет ширину секции в пикселях
Свойства компонента TStatusBar:
property Canvas: TCanvas; | Канва для прорисовки панелей
property Panels: TStatusPanels; | Содержит объекты-панели. Свойство TStatusPanels.items [index: Integer]: TStatusPanei открывает доступ к панели по ее индексу
property SimplePanel: Boolean; | Запрещает/разрешает создание нескольких панелей. Если содержит True, компонент имеет единственную панель
property SimpleText: String; | Содержит текст панели для sim-plePanel=True
property SizeGrip: Boolean; | Разрешает/запрещает вставку кнопки изменения размеров окна. Игнорируется, если AlignoalBottom
Для компонента определены такие события:
TDrawPanelEvent = procedure( StatusBar: TStatusBar; Panel: TStatusPanei; const Rect: TRect) of object-property OnDrawPanel: TDrawPanelEvent; | Возникает при необходимости прорисовки панели Panel, если ее свойство Style определено как psOwnerDraw: Rect - прямоугольник прорисовки
Property OnResize: TNo.tifyEvent; | Возникает при изменении размеров компонента