Delphi在加载时禁用表单
发布时间:2020-12-15 09:50:01 所属栏目:大数据 来源:网络整理
导读:在我的应用程序中,我有一个主窗体,能够在数据库中加载一些图像. 在加载图像时,我想显示一个带有进度指示器的表单(带有bsNone边框样式). 但是,如果我使用ShowModal显示表单,主表单的执行会停止,所以我不能这样做. 如果我调用Show,则用户可以访问所有其他表单
在我的应用程序中,我有一个主窗体,能够在数据库中加载一些图像.
在加载图像时,我想显示一个带有进度指示器的表单(带有bsNone边框样式). 但是,如果我使用ShowModal显示表单,主表单的执行会停止,所以我不能这样做. 如果我调用Show,则用户可以访问所有其他表单组件,这可能很危险,而照片未完全加载. 我需要得到方法,禁用主窗体上的所有内容,而加载没有完成. 请告诉我,这是怎么可能的. 解决方法
将MainForm设置为进度表单的PopupParent,以便MainForm永远不会出现在进度表单的顶部.然后只需在进度表单打开时设置MainForm.Enabled:= False,并在关闭进度表单时设置MainForm.Enabled:= True.
procedure TMainForm.ShowProgressForm; begin with TProgressForm.Create(nil) do begin PopupParent := Self; OnClose := ProgressFormClose; Show; end; Enabled := False; end; procedure TMainForm.ProgressFormClose(Sender: TObject; var Action: TCloseAction); begin Action := caFree; Enabled := True; end; 这模拟了howShowModal()对用户的行为(MainForm在进度表打开时不是用户交互的),但没有阻止代码. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |