ProgressBar1.Min:=0; ProgressBar1.Max:=700; for i:=1 to 700 do begin //这里加一句 if ProgressBar1.Position>=2 then begin SendMessage('提示内容'); break ;跳出循環 end; ProgressBar1.Position:=i; Application.ProcessMessages; sleep(10); end;
你这个问题这样的:1、你说弹出OK后点击确定就不动了;事实上还在动,因为你声明的进度最大值得(ProgressBar1.Max:=700),你在进度2开始判断(ProgressBar1.Position>=2),也就是说你需要再点击699次这个进度条才能走到最后的刻度,所以你感觉它不动了;如果你去掉showmessage后,很快也会走完,只是你的sleep时间比较长,如果再去掉sleep的话,不到1秒应该就走完整个刻度。2、你要求的功能是:不想出现提示框,返回值写在form2.ShowModal指向预留的第二个窗体 A、不想出现提示框,直接去掉整个判断就oK啦,就是把下面这个去掉 if ProgressBar1.Position>=2 then begin SendMessage('提示内容'); //这个能编译通过吗?除非你是自定义的函数; end;
B、返回值写在form2.ShowModal指向预留的第二个窗体? 你说的这个比较模糊,第二个窗体的什么上呢,普通变量、数组、ProgressBar、...? 那就当是另一个窗体的普通变量吧(不管是什么,方法类似); 假如第二个窗体的Public下声明的一个变量:FPosition,那么代码如下: procedure TForm1.Button1Click(Sender: TObject); var I:integer; Frm2: TForm2; begin ProgressBar1.Min:=0; ProgressBar1.Max:=700; Frm2 := TForm2.Create(nil); try for i:=1 to 700 do begin //这里加一句 if ProgressBar1.Position >= 2 then begin //showmessage('提示内容'); Frm2.FPosition := ProgressBar1.Position; //这个没有显示第二个窗体 end; ProgressBar1.Position:=i; Application.ProcessMessages; sleep(1); end; finally FreeAndNil(Frm2); end; end;如果还有其他问题,欢迎继续讨论!
for i:=1 to 700 do
begin
//这里加一句
if ProgressBar1.Position>=2 then
begin
SendMessage('提示内容'); break ;跳出循環
end;
ProgressBar1.Position:=i;
Application.ProcessMessages;
sleep(10);
end;
A、不想出现提示框,直接去掉整个判断就oK啦,就是把下面这个去掉
if ProgressBar1.Position>=2 then
begin
SendMessage('提示内容'); //这个能编译通过吗?除非你是自定义的函数;
end;
B、返回值写在form2.ShowModal指向预留的第二个窗体?
你说的这个比较模糊,第二个窗体的什么上呢,普通变量、数组、ProgressBar、...?
那就当是另一个窗体的普通变量吧(不管是什么,方法类似);
假如第二个窗体的Public下声明的一个变量:FPosition,那么代码如下:
procedure TForm1.Button1Click(Sender: TObject);
var
I:integer;
Frm2: TForm2;
begin
ProgressBar1.Min:=0;
ProgressBar1.Max:=700; Frm2 := TForm2.Create(nil);
try
for i:=1 to 700 do
begin
//这里加一句
if ProgressBar1.Position >= 2 then
begin
//showmessage('提示内容');
Frm2.FPosition := ProgressBar1.Position;
//这个没有显示第二个窗体
end; ProgressBar1.Position:=i;
Application.ProcessMessages;
sleep(1);
end; finally
FreeAndNil(Frm2);
end;
end;如果还有其他问题,欢迎继续讨论!