怎样做一个等待窗口?

hubo927 2003-08-22 08:58:37
我的程序在进行数据统计的时候有点慢,我想做一个等待窗口,在数据统计完后,窗口自动消失,应该怎么做?
...全文
160 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
wooden954 2003-08-22
  • 打赏
  • 举报
回复
开始统计前用一个线程显示一个有动画的窗口,在统计结束后结束这个线程就可以了!
myadvice 2003-08-22
  • 打赏
  • 举报
回复
如果的确需要较长时间的话还是用多线程吧!不要让客户等得太烦了给你Close了哦,我就遇到

过这种情况
tonylk 2003-08-22
  • 打赏
  • 举报
回复
var
FormWait: TFormWait;
WindowList:Pointer;

procedure ShowFormWait(AOwner:TComponent);
//2003.02.26
begin
if not Assigned(FormWait) then begin
FormWait:=TFormWait.Create(AOwner);
end;
WindowList:=DisableTaskWindows(FormWait.Handle);
FormWait.Show;
FormWait.Update;
end;

procedure HideFormWait();
//2003.02.26
begin
if Assigned(FormWait) then begin
EnableTaskWindows(WindowList);
FreeAndNil(FormWait);
end;
end;

procedure InitFormWait(MusicName:WideString);
//2003.03.24
begin
if Assigned(FormWait) then begin
FormWait.LabelMusic.Caption:='Saving ['+MusicName+']';
FormWait.Update;
end;
end;

procedure ProgressFormWait(Value:Integer);
//2003.03.24
begin
if Assigned(FormWait) then begin
FormWait.ProgressBar1.Position:=Value;
end;
end;

//**************usage***************

try
ShowFormWait(AOwner);
DoSaveMusic(MusicInfo);
finally
HideFormWait();
end;

procedure TMLDataModule.DoSaveMusic(FileStream:TTntFileStream;DBStream:TStream);
//save music data from file into database
const
MAXBUFSIZE=500000;
var
BufferSize:Integer;
begin
FileStream.Position:=0;
DBStream.Position:=0;
BufferSize:=MAXBUFSIZE;
Application.MainForm.Update;
if BufferSize>FileStream.Size then begin
BufferSize:=FileStream.Size;
end;
while BufferSize>0 do begin
DBStream.CopyFrom(FileStream,BufferSize);
ProgressFormWait(FileStream.Position*100 div FileStream.Size);
Application.ProcessMessages;
BufferSize:=MAXBUFSIZE;
if BufferSize>FileStream.Size-FileStream.Position then begin
BufferSize:=FileStream.Size-FileStream.Position;
end;
end;
end;
sy_315 2003-08-22
  • 打赏
  • 举报
回复
你可以在统计开始的时候挂起一个界面;屏蔽主界面
判断计算完毕屏蔽改界面,挂起主界面

2,498

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 数据库相关
社区管理员
  • 数据库相关社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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