怎样自建一个进度条(50分)

  • 主题发起人 programsky
  • 开始时间
P

programsky

Unregistered / Unconfirmed
GUEST, unregistred user!
在程序运行过程中很多对象的外观是不变的
 
就是用非进度条控件或其它方法建立一个进度条。
 
procedure TForm1.BitBtn1Click(Sender: TObject);
var ff:tprogressbar;
i:integer;
begin
ff:=tprogressbar.Create(form1);
ff.Visible:=true;
ff.Parent:=form1;
ff.Orientation:=pbHorizontal;
ff.Min:=0;
ff.Max:=200;
ff.Left:=200;
ff.Top:=200;
ff.Width:=200;
ff.Height:=16;
for i:=0 to 200 do
begin
ff.StepIt;
if ff.Position=199 then //为让你看到效果
ff.free;
end;
end;
 
可以实现呀,不过,有什么实际意义吗?为什么不用DELPHI自带的控件呢?
 
运行无法听过
 
你问的是什么意思?如果说是建立TProgressBar控件,那么就是运行时动态建立
控件的问题,就是很简单的问题了。
如果像你所说自己模拟的话,可以用TImage控件,然后用Canvas来自己画。
 
我也来一个,请大家指教
type
TForm1 = class(TForm)
Button1: TButton;
ge: TProgressBar;
procedure Button1Click(Sender: TObject);
private
fm:Tform;
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var i : integer;
begin
ge.Visible:= true;
fm:= Tform.Create(self); //新建一个窗口以显示进度条
fm.BorderIcons:=[]; //去掉显示进度条窗口左上角的图标及右上角的关闭、恢复、最小
fm.Caption:= '正在处理数据'; //化按键
ge.Height:=25;
ge.Width:=300;
ge.Parent:= fm;

fm.Height:=ge.height+28;
fm.Width:=ge.Width+10;

fm.Position:=Poscreencenter; //指定进度条在窗体的中央
ge.Left:= fm.Left ;
ge.Top:= fm.Top;
fm.Show;
ge.Max:=300;
ge.position:= 0; // 或ge.min:=0;
for i:=0 to 300 do
begin
ge.Position:= ge.Position +1;
sleep(10); //控制进度时间
end;

ge.Parent:= form1;
fm.Free;
ge.Visible:= false;
end;
 
顶部