为何为不能正确显示进度?请大虾指点一下..谢了..procedure TWebForm.WebBrowser1ProgressChange(Sender: TObject; Progress,
  ProgressMax: Integer);
var
I,StepCount : Integer;
begin
//动态创建进度条组件progressBar
progressBar1:=TProgressBar.Create(WebForm);
with progressBar1 do 
begin
// 先确定进度条组件的尺寸和位置
Top:=ProgressBarRect.Top;
Left:=ProgressBarRect.Left; 
Width:=ProgressBarRect.Right-ProgressBarRect.Left; 
Height:=ProgressBarRect.Bottom-ProgressBarRect.Top; 
Visible:=True; // 使进度条可见 
 
try
  Parent:=StatusBar1; // parent属性设置为状态栏组件
  Min:=0;// 设定进度条的范围和步长                 
  Max:=ProgressMax;          
  Step:=1; 
  
  //for I:=1 to Max do
  Position:=Progress;// 循环使进度显示条累加 finally
Free;// 最后释放进度条组件占用的资源
end; 
end;
end;

解决方案 »

  1.   

    不明白为什么你要用动态创建,而且过程结束前还把他释放掉了
    结果当然是什么都看不到progresschange事件会频繁的触发,你的逻辑就不正确progressBar1是全局的,如果你是从控件栏拖上去的,那么你就不需要再创建它,把(progressBar1:=TProgressBar.Create(WebForm); 和Free;// 最后释放进度条组件占用的资源 )
    这2处去掉
    如果progressBar1是你定义的TProgressbar变量,那么把(progressBar1:=TProgressBar.Create(WebForm); 和Free;// 最后释放进度条组件占用的资源 )分别放到formcreate和formdestroy事件中去