多语言展示
当前在线:1124今日阅读:176今日分享:34

Delphi7制作下载进度条

Delphi7制作下载进度条,通过另一个窗体显示进度条。
工具/原料
1

Delphi7

2

Windows电脑

方法/步骤
1

打开Delphi7集成开发环境,在默认工程的Form1窗体放一个Button1控件和一个Timer1控件,设置Timer1的Enabled属性为False.

2

在Unit1.pas文件的implementation下添加以下代码:uses Gauges;var Gauge1: TGauge;这个控件用来显示进度。

3

双击Button1进入OnClick事件方法:procedure TForm1.Button1Click(Sender: TObject);var  form2: TForm;begin  form2 := TForm.Create(nil);  form2.BorderStyle := bsSizeToolWin;  form2.Width := 400;  form2.Height := 80;  form2.Position := poDesktopCenter;    Gauge1 := TGauge.Create(form2);    Gauge1.MinValue := 0;    Gauge1.MaxValue := 100;    Gauge1.Width := form2.ClientWidth - 40;    Gauge1.Height := 30;    Gauge1.Left := 20;    Gauge1.Top := (form2.ClientHeight - Gauge1.Height) div 2;    Gauge1.Parent := form2;  Timer1.Interval := 100;  Timer1.Enabled := True;  form2.ShowModal;  form2.Free;  Timer1.Enabled := False;end;解释一下:创建一个无Owner的form2,设置显示位置及大小,创建以form2为Owner的进度条,这样form2销毁时候进度条也会随着销毁,设置进度条的大小,设置Timer1的间隔并打开timer1,模态窗口方式显示form2,在Timer1中form2返回,再销毁form2,关闭Timer1

4

在Timer1的OnTimer事件方法中写如下代码,设置form2的showModal返回值。procedure TForm1.Timer1Timer(Sender: TObject);begin  if Assigned(Gauge1) then  begin    Gauge1.Progress := Gauge1.Progress + 1;    if Gauge1.Progress = Gauge1.MaxValue then TForm(Gauge1.Parent).ModalResult := 1;  end;end;解释一下:if Assigned(Gauge1) then相当于 if Gauge1 <> nil thenGauge1.Parent就是form2,在上一步的Button1的OnClick方法中设置的。设置ModalResult,窗体的ShowModal方法返回了

5

F9运行程序,点击Button1按钮,可以看到进度条,当进度条到终点时,进度条所在窗体自动消失,非常适合程序下载进度显示

推荐信息