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;

Возникает при изменении размеров компонента