怎样在Statusbar上的statuspanel上做progressbar?(50分)

  • 主题发起人 主题发起人 deve
  • 开始时间 开始时间
加一个progressbar,
不过设置其parent为statusbar就行了。
 
最简单的方法:
首先生成Statusbar的Panel;
然后:StatusBar1.Panels[0].TEXT:='■';
每当完成一部分工作:
StatusBar1.Panels[0].TEXT:=StatusBar1.Panels[0].TEXT+'■';
或者StatusBar1.Panels[0].TEXT:=StatusBar1.Panels[0].TEXT+'■■■';
随你挑. :)
...
{相当于Progressbar的stepit }
 
哈哈哈哈,好黑
 
E-mail 我,给你源程序,CBC4,DELPHI均可
wang.xq@163.net
 
嘿嘿……Charles的答案……口黑口黑
8)
 
progressbar1.parent:=statusbar1;
progressbar1.left:=rect.left;
progressbar1.top:=rect.top;
progressbar1.width:=statusbar1.panpel.width;
progressbar1.height:=rect.bottom-rect.top;
 
小天:代码中rect的是怎么赋值的.
 
在tstatuspanel.ondrawpanel中,加上小天的代码。
 
对对对,RECT是传入值
 
下面是一段根据小天的答案改编的代码:
var
pb: TProgressBar;
rect: TRect;
begin
pb := TProgressBar.Create(Self);
pb.Parent := StatusBar1;
rect := StatusBar1.ClientRect;
pb.Left := rect.Left;
pb.Top := rect.Top + 2;
pb.Width := StatusBar1.Panels[0].Width;
pb.Height := rect.Bottom - rect.Top - 2;
end;
能搞定你说的问题。分归我了吧 8)
 
to Kim Wong:
没搞定的丫(跟小天学的),你没有考虑statuspanel的resize问题丫丫丫丫
 
Kim Wong 你的代码有一点不对
我运行了你的代码发现
ProgressBar出现在StatusBar1上,而不是在statuspanel上,
因为你设置的是pb.Parent := StatusBar1;
这并没有达到我的要求啊。


 
unit Unit3;

interface

uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
ExtCtrls, ComCtrls, StdCtrls;

type
TForm3 = class(TForm)
ProgressBar1: TProgressBar;
Timer1: TTimer;
Button1: TButton;
StatusBar1: TStatusBar;
procedure FormCreate(Sender: TObject);
procedure StatusBar1DrawPanel(StatusBar: TStatusBar;
Panel: TStatusPanel; const Rect: TRect);
procedure Timer1Timer(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form3: TForm3;

implementation

{$R *.DFM}

procedure TForm3.FormCreate(Sender: TObject);
begin
statusbar1.Panels[0].style:=psOwnerDraw;
progressbar1.Parent:=statusbar1;
end;

procedure TForm3.StatusBar1DrawPanel(StatusBar: TStatusBar;
Panel: TStatusPanel; const Rect: TRect);
begin
progressbar1.BoundsRect:=rect;
end;

procedure TForm3.Timer1Timer(Sender: TObject);
begin
progressbar1.Position:=progressbar1.Position+10;

end;

end.
 

" 黑怎么着,黑怕什么, 黑照样可以干革命..." :(

-------<<霓虹灯下的哨兵>>

我的方法最好了,简单实用,价廉物美,精简节约,薄利多销...... :)

 
多人接受答案了。
 
后退
顶部