这样的进度条窗口是怎弄的?

BCB 2003-02-17 08:45:52
执行一项速度较慢的操作,许多程序会弹出一个含有进度条的
小窗口,一边运行,一边进度在变化着,这不会太难,问题是
为了独占运行(封锁其它操作),人家这这个进度条小窗口可
能是用ShowModal显示的,但用了ShowModal,连自已的
程序也得不到控制权了,进度都没法设置了,人家是如何实现
的呢?即要求既是Form2.ShowModal,也能控制进度和运行自已
的程序?

...全文
84 16 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
BCB 2003-02-18
  • 打赏
  • 举报
回复
总结一下,发分:
1.用ShowModal,在进度窗口form中,放程序,通用性稍差;
2.同上,结合用线程, 有点复杂;
3.qiujsh的Show,但锁住form1,很象ShowModal,给100分
form1.enabled:=false;
form2.show
form2 属性FormStyle=fsStayOnTop


goomoo 2003-02-17
  • 打赏
  • 举报
回复
在form2中处理程序。
BCB 2003-02-17
  • 打赏
  • 举报
回复
楼上,请贴几行代码呀
rwdx 2003-02-17
  • 打赏
  • 举报
回复
使用一个至于最顶层的窗口显示进度条,不要用SHOWMODAL
sysu 2003-02-17
  • 打赏
  • 举报
回复
gz
northwind001 2003-02-17
  • 打赏
  • 举报
回复
等待...
BCB 2003-02-17
  • 打赏
  • 举报
回复
有了ShowModal后,系统处于等待确认状态,
连自已的程序都得不控制权了,更谈不上动态设
置进度值了,呵呵,等待中。。。。。。。。


BCB 2003-02-17
  • 打赏
  • 举报
回复
最好不要用线程,简单事情复杂化了,有没有更好的办法,等待中。。。。。

Billy_Chen28 2003-02-17
  • 打赏
  • 举报
回复
线程操作
Drate 2003-02-17
  • 打赏
  • 举报
回复
我想使用FORM2.SHOWMODAL应该是不会错的!
至于楼主说的控制进度和运行自己的程序,我想在控制进度的时候,你可以加上这些代码,如:

{...程序代码}
inc(form2.progess1.position);
lincanwen 2003-02-17
  • 打赏
  • 举报
回复
另外启动一个线程来Form2.ShowModal,同时控制进度条的Max 和 Position
Sorder 2003-02-17
  • 打赏
  • 举报
回复
开一个线程来执行进度条,Form 最好用Show然后设置Form的FormStyle属性
StayOnTop
qiujsh 2003-02-17
  • 打赏
  • 举报
回复
from1.enabled:=false;
form2.show
form2 属性FormStyle=fsStayOnTop
noall 2003-02-17
  • 打赏
  • 举报
回复
设置form2的formstyle为fsstayontop然后用form2.show.不要用showmodal;

接着就可以控制了。

procedure TForm1.Button1Click(Sender: TObject);
begin
form2.Show;
Timer1.Enabled :=true;
end;

procedure TForm1.Timer1Timer(Sender: TObject);
begin
form2.ProgressBar1.Position :=form2.ProgressBar1.Position +10
end;
LuckyJan 2003-02-17
  • 打赏
  • 举报
回复
form2.show
form2 属性FormStyle=fsStayOnTop
BCB 2003-02-17
  • 打赏
  • 举报
回复
控制权在Form2中,想在Form1直接得控制权较困难
OK

5,928

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧