2008-3-6 16:27
xierenxixi
关于ProgressForm的bug
当在一个showmodal的窗体上用这个进度条时,关闭后showmodal的窗体会变成不是showmodal的,
这时点主窗体可以把这showmodal窗体给隐藏掉,
原因就是这个的formlist被禁窗体引起的
如图修改代码就不会出现这种问题
procedure ShowProgress(Aowner:TComponent;const Title: string);
var
i: Integer;
begin
if not Assigned(ProgressForm) then
ProgressForm := TProgressForm.Create(Aowner)
else
ProgressForm.BringToFront;
if Title<>'' then
ProgressForm.lblTitle.Caption := Title;
ProgressForm.Show;
//这里不用那个循环
WindowList:=DisableTaskWindows(ProgressForm.Handle);
ProgressForm.Update;
end;
procedure HideProgress;
var
i: Integer;
begin
if not Assigned(ProgressForm) then Exit;
//关闭改为这样
EnableTaskWindows(WindowList);
ProgressForm.Close;
Application.ProcessMessages;
ProgressForm.Free;
ProgressForm := nil;
end;
2008-3-8 10:09
Passion
感谢指出,已经按照您的提示改正。
另外,能否帮忙写个简单例子验证一下修改后的效果?
2008-3-8 11:27
xierenxixi
好的,要等等,过两天提供给你
2008-3-8 11:32
xierenxixi
在附件中,你看下,点时是showmodal,再点里面那按钮弹出进度条后就不是的了
2008-3-8 11:33
xierenxixi
我只写了这点代码
procedure TForm2.Button1Click(Sender: TObject);
begin
ShowProgress('1232');
Sleep(1000);
UpdateProgress(100);
HideProgress
end;
2008-3-8 21:52
Passion
感谢测试。目前CnPack的CVS上的代码已经按照您的提示进行了修改,如果您能访问CVS的话可下载更新最新代码来重新检验这个问题。
如何获得最新代码请参考:
[url]http://bbs.cnpack.org/viewthread.php?tid=1882&extra=page%3D1[/url]
2008-3-8 23:16
xierenxixi
好的,发现问题我会报告的,
页:
[1]
Powered by Discuz! Archiver 5.0.0
© 2001-2006 Comsenz Inc.