如何用进度条来显示当前程序执行得进度!(49分)

  • 主题发起人 主题发起人 心动痕迹
  • 开始时间 开始时间

心动痕迹

Unregistered / Unconfirmed
GUEST, unregistred user!
我现在做了个程序,该程序的执行需要一定的时间
我现在想要用进度条来显示该程序的执行的进度。
请问应该如何实现呢!
谢谢!
 
用progressbar
 
在循环之前设定ProgressBar的Max属性,并将Position置为0,在循环中不断的增大Position,
为了及时的显示进度,每次改变Position后采用Repaint方法重绘ProgressBar。
 
执行时是否有定位的值
if true
begin
progressbar or gauge can used
end
else
begin
it is too trouble
end;

 
楼上的大哥们,我就是因为找不到max而烦恼啊 ,
因为我只是做个排课程序,该程序根本没有什么max在里面
老师要求我们做个进度条来和排课联系上,显示排课的
执行情况,可是该怎样获的和排课相关联的定位值呢?
谢谢了!
 
1.用一个Timer定时更新Position
例如:估计排课时间在30秒左右,将Max设为300,在20秒之前每秒前进10个单位,之后每秒前进5个单位。
差不多就行了。

2.在“数据结构”分类中新开一个贴子,将你的算法大致流程贴出来,大家帮你找一找Max和Position。
 
你的排课课程,是如何安排的呢?
如果是按班级来排,例如有十班,可以令max=10
每完成一班,则进度值Position加1
以此类推,把排课课程规则分成几个小单元,
如此一般……
 
你可以在project的pas文件里看有几个createform 每创建完一个进度条适当加一个数值
虽然不太精确但是还是可以应付的
 
同意robertcool的方法:比如你有5个form要创建:
rogram Project1;

uses
Forms,
Unit1 in 'Unit1.pas' {Form1},

Unit1 in 'Unit2.pas' {Form2},


Unit1 in 'Unit3.pas' {Form3},


Unit1 in 'Unit4.pas' {Form4},


Unit1 in 'Unit5.pas' {Form5};
{$R *.RES}

begin
Application.Initialize;

Application.CreateForm(TForm1, Form1);
ProgressBar1。position:=ProgressBar1。position+1;
Application.CreateForm(TForm2, Form2);
ProgressBar1。position:=ProgressBar1。position+1;
Application.CreateForm(TForm3, Form3);
ProgressBar1。position:=ProgressBar1。position+1;
Application.CreateForm(TForm4, Form4);
ProgressBar1。position:=ProgressBar1。position+1;
Application.CreateForm(TForm5, Form5);

ProgressBar1。position:=ProgressBar1。position+(progressbar1.max-progressbar1.position);
Application.Run;
end.
 
我明白了,原来进度条是这么搞的;

那我所见的进度都是假的啦?

那所需时间也是假的了?

我一直很信的。
 
>有几个createform
??人家是要在排课过程中显示进度,跟什么创建窗体有关系吗?

>那我所见的进度都是假的啦?
至少我写的ProgressBar都是严格按照比例进行的。不过别人的嘛...
看一看用InstallShield的做安装程序,在准备阶段0%-99%多快,可是最后那1%要等上半天。

>心动痕迹
对不起,才发现您已经用了所有的分数。
您还是把大体流程贴出来吧,wus001的思路是对的,但应用的时候还是要具体情况具体分析。
 
谢谢楼上那么多位大哥了,我想还有用课程班来衡量可能会简单些,
本来想结束帖子的,可是实在是没分,怕等我执行的时候又会出现什么
异样的情况,所以等我实现这个功能后再结束。谢谢了!
 
多人接受答案了。
 
后退
顶部