TStatusBar+TProgressBar
Вставить ProgressBar в StatusBar:
Вот эту функцию применять вместо стандартного Create
{©Drkb v.3(2007): <a href="http://www.drkb.ru" title="www.drkb.ru">www.drkb.ru</a>,
®Vit (Vitaly Nevzorov) - nevzorov@yahoo.com}
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 (www.delphist.com, www.drkb.ru, www.unihighlighter.com, www.nevzorov.org)
{©Drkb v.3(2007): www.drkb.ru}
begin
....
pb:= TProgressBar.Create(self);
with pb do begin
Parent:= StatusBar1;
Position:= 30;
:= 2;
Left:= 0;
Height:= StatusBar1.Height - ;
Width:= StatusBar1.Panels[0].Width - Left;
end; //with;
pb.Visible:= True;
....
end;
Взято с Vingrad.ru http://forum.vingrad.ru
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.
Это позволит вам разместить элемент управления в панели. Но этот способ не поддерживает использование вложенных панелей. Вероятно, вам также понадобиться выровнять элемент управления по правому краю. Не так это все сложно...
Взято из Советов по Delphi от Валентина Озерова
Сборник Kuliba
pgProgress положить на форму как Visible := false; StatusPanel надо OwnerDraw сделать и pефpешить, если Position меняется.
begin
{©Drkb v.3(2007): www.drkb.ru}
if Panel.Index = pnProgress then
begin
pgProgress.BoundsRect := Rect;
pgProgress.PaintTo(stStatusBar.Canvas.Handle, Rect.Left, Rect.);
end;
end;
Взято с Vingrad.ru http://forum.vingrad.ru
With TProgressBar.Create(StatusBar1) Do Parent:=StatusBar1;
Автор: Song
Отправить комментарий