Содержание материала

 

Вставить ProgressBar в StatusBar:

 

Вот эту функцию применять вместо стандартного Create

Code:

Function CreateProgressBar(StatusBar:TStatusBar; index:integer):TProgressBar;

{©Drkb v.3: www.drkb.ru,

®Vit (Vitaly Nevzorov) - Этот адрес электронной почты защищён от спам-ботов. У вас должен быть включен JavaScript для просмотра.}

var findleft:integer;

       i:integer;

begin

result:=TProgressBar.create(Statusbar);

result.parent:=Statusbar;

result.visible:=true;

result.top:=2;

findleft:=0;

for i:=0 to index-1 do

   findleft:=findleft+Statusbar.Panels[i].width+1;

result.left:=findleft;

result.width:=Statusbar.Panels[index].width-4;

result.height:=Statusbar.height-2;

end;

 

Автор: Vit 

 

Code:

var pb: TProgressBar;

{©Drkb v.3: www.drkb.ru}

begin

....

pb:= TProgressBar.Create(self);

with pb do begin

   Parent:= StatusBar1;

   Position:= 30;

   Top:= 2;

   Left:= 0;

   Height:= StatusBar1.Height - Top;

   Width:= StatusBar1.Panels[0].Width - Left;

end//with;

pb.Visible:= True;

....

end;


 

Code:

unit adStatba;

 

interface

 

uses

 

Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,

ComCtrls;

 

type

 

TAdrockStatusBar = class(TStatusBar)

private

{ Private declarations }

protected

{ Protected declarations }

public

{ Public declarations }

Constructor Create(Aowner : TComponent); override;

published

{ Published declarations }

end;

 

procedure Register;

 

implementation

 

Constructor TAdrockStatusBar.Create(Aowner : TComponent);

begin

 

inherited Create(Aowner);

ControlStyle := ControlStyle + [csAcceptsControls];

end;

 

procedure Register;

begin

RegisterComponents('Adrock', [TAdrockStatusBar]);

end;

 

end.

 

Это позволит вам разместить элемент управления в панели. Но этот способ не поддерживает использование вложенных панелей. Вероятно, вам также понадобиться выровнять элемент управления по правому краю. Не так это все сложно...

 

pgProgress положить на форму как Visible := false; StatusPanel надо OwnerDraw сделать и pефpешить, если Position меняется.

Code:

procedure TMainForm.stStatusBarDrawPanel(StatusBar: TStatusBar; Panel: TStatusPanel; const Rect: TRect);

begin

{©Drkb v.3: www.drkb.ru}

if Panel.Index = pnProgress then

begin

   pgProgress.BoundsRect := Rect;

   pgProgress.PaintTo(stStatusBar.Canvas.Handle, Rect.Left, Rect.Top);

end;

end;

 

With TProgressBar.Create(StatusBar1) Do Parent:=StatusBar1;

 

 

Автор: Song

 

Добавить комментарий

Не использовать не нормативную лексику.

Просьба писать ваши замечания, наблюдения и все остальное,
что поможет улучшить предоставляемую информацию на этом сайте.

ВСЕ КОММЕНТАРИИ МОДЕРИРУЮТСЯ ВРУЧНУЮ, ТАК ЧТО СПАМИТЬ БЕСПОЛЕЗНО!


Защитный код
Обновить