EASY,只需要扩展一下statusbar,加一个属性就行.分归我了.//----------------------------------------------------------------------//
//扩展StatusBar
//加入特性:允许在状态条上加入任意控件
type
TMStatusBar=Class(TStatusBar)
private
protected
public
constructor Create(AOwner: TComponent); override;
published
end;//TMStatusBar 事件扩展
constructor TMStatusBar.Create(AOwner: TComponent);
begin
inherited Create(AOwner);
ControlStyle:= ControlStyle + [csAcceptsControls];
end;
//扩展StatusBar
//加入特性:允许在状态条上加入任意控件
type
TMStatusBar=Class(TStatusBar)
private
protected
public
constructor Create(AOwner: TComponent); override;
published
end;//TMStatusBar 事件扩展
constructor TMStatusBar.Create(AOwner: TComponent);
begin
inherited Create(AOwner);
ControlStyle:= ControlStyle + [csAcceptsControls];
end;
简单点儿:
在窗体上放置一个Panel,设置align:=alBottom和高度,然后再在里面放置Progressbar,button,和一个StatusBar,设置他们的Align和宽度即可。呵呵,使用非常简单。我就是这么做的,当然,现在有这样的StatusBar控件,不过,我一向不喜欢用第三方的控件:)
Tip: 一定要用缺省的状态条吗?没这么执着吧? 可以使用Panel及其嵌套啊!——设置主Panel的Align属性为alBottom如何? 至于“加入按钮、进度条等多个控件”,就往里边加呗~!它们的大小、对齐属性都可以设定的。 还有哪个下三角,你实在要的话,就在Panel自画事件里画一下啦! Any Question ?
2、一般动态地创建ProgressBar,并将其父级设置为状态栏组件。e.g.private
ProgressBar:TProgressBar;
ProgressBarRect:TRect;
...
procedure TForm1.StatusBar1DrawPanel(...)
begin
ProgressBarRect:=Rect;
end;procedure TForm1.Button1Click(...)
var
i,StepCount:integer;
begin
ProgressBar:=TProgressBar.Create(Form1);
StepCount:=100;
with ProgressBar do
begin
Top:=ProgressBarRect.Top;
Left:=ProgressBarRect.Left;
Width:=ProgressBarRect.Right-ProgressBarRect.Left;
Height:=ProgressBarRect.Bottom-ProgressBarRect.Top;
Visible:=True;
try
Parent:=StatusBar1;
Min:=0;
Max:=StepCount;
...
finally
Free;
end;
end;
end;