1、打开Delphi7集成开发环境,在默认工程的Form1窗体放一个Button1控件和一个Timer1控件,设置Timer1的Enabled属性为False.
2、在Unit1.pas文件的implementation下添加以下代码:uses Gauges;var Gauge1: TGauge;这个控件用来显示进度。
3、双击Button1进入OnClick事件方法:procedure TForm1.Butto艘绒庳焰n1Click(Sender: TO芟鲠阻缒bject);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返回值。pro艘早祓胂cedure 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按钮,可以看到进度条,当进度条到终点时,进度条所在窗体自动消失,非常适合程序下载进度显示