一个窗体数据很多。(20分)

  • 主题发起人 主题发起人 lyplay2
  • 开始时间 开始时间
L

lyplay2

Unregistered / Unconfirmed
GUEST, unregistred user!
FRMDATA内数据很多,要相当时间才能创建好,还以为是死机了。(不是主窗体)
想用一个简单的窗体(FRMWAIT)提示一下,
问题是如何在创建FRMDATA时,SHOW出FRMWAIT,当FRMDATA创建好后,FRMWAIT关闭?
 
procedure TBaseForm.FormCreate(Sender: TObject);
begin
DfrmWaitForm:=TDfrmWaitForm.Create(Application);
DfrmWaitForm.show;
DfrmWaitForm.Update;
DfrmWaitForm.Refresh;
.......
end;

procedure TBaseForm.FormActivate(Sender: TObject);
begin
If DfrmWaitForm<>nil then
begin
DfrmWaitForm.free;
DfrmWaitForm:=nil;
end;
.....
end;
 
在frmData创建的时候先创建frmWait并显示它,代码如下:
var
dTick:Integer;
begin
with tfrmwait.create(self) do
begin
show;
end;
Application.ProcessMessages;
//下面是frmData创建事件里的代码,
// dTick := GetTickCount();
// while GetTickCount()-dTick<2000 do
// begin
// Application.ProcessMessages;
// end;
end;
 
必须加Application.ProcessMessages;
 
//下面是frmData创建事件里的代码,
// dTick := GetTickCount();
// while GetTickCount()-dTick<2000 do
// begin
// Application.ProcessMessages;
// end;
end;
这段代码是什么意思?
 
这段代码对你来说是没用的,我是为了延时才写的,换成你自己的代码就行了.
 
最好优化一下你的代码,去掉一些可以去掉的控件,还有,让一些东西用过的时候创建,再FREE到
下次用的时候还创建
 
with tfrmwait.create(self) do
begin
show;
end;
Application.ProcessMessages;
把上面的代码加到frmdata的create事件里.
 
多人接受答案了。
 
后退
顶部