Delphi在加载时禁用表单

Delphi在加载时禁用表单,第1张

概述在我的应用程序中,我有一个主窗体,能够在数据库中加载一些图像. 在加载图像时,我想显示一个带有进度指示器的表单(带有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在进度表打开时不是用户交互的),但没有阻止代码.

总结

以上是内存溢出为你收集整理的Delphi在加载时禁用表单全部内容,希望文章能够帮你解决Delphi在加载时禁用表单所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1272987.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-08
下一篇 2022-06-08

发表评论

登录后才能评论

评论列表(0条)

保存