TStatusBar+TProgressBar
Материал из DRKB
TStatusBar+TProgressBar[править | править код]
Author: Vit (www.delphist.com, www.drkb.ru, www.unihighlighter.com, www.nevzorov.org)
ID: 00518
var
pb: TProgressBar;
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;
pb.Visible := True;
end;
Source: Взято с Vingrad.ru http://forum.vingrad.ru
ID: 00519
unit adStatba;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
ComCtrls;
type
TAdrockStatusBar = class(TStatusBar)
public
{ Public declarations }
constructor Create(Aowner : TComponent); override;
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.
Это позволит вам разместить элемент управления в панели. Но этот способ не поддерживает использование вложенных панелей. Вероятно, вам также понадобиться выровнять элемент управления по правому краю. Не так это все сложно...
Сборник Kuliba
Source: Взято из Советов по Delphi от Валентина Озерова
ID: 00520
pgProgress положить на форму как Visible := false; StatusPanel надо OwnerDraw сделать и рефрешить, если Position меняется.
procedure TMainForm.stStatusBarDrawPanel(StatusBar: TStatusBar; Panel: TStatusPanel; const Rect: TRect);
begin
if Panel.Index = pnProgress then
begin
pgProgress.BoundsRect := Rect;
pgProgress.PaintTo(stStatusBar.Canvas.Handle, Rect.Left, Rect.Top);
end;
end;
Source: Взято с Vingrad.ru http://forum.vingrad.ru
ID: 00521
with TProgressBar.Create(StatusBar1) do Parent := StatusBar1;
Author: Song
ID: 00522