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; |
Возникает при изменении размеров компонента |