- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
为了防止新创建的模态窗口隐藏在其模态父窗口下,我习惯在调用 ShowModal
时始终设置 PopupParent
(如建议的 here 、 here 和 here ) :
function TMyForm.ShowModal(ParentForm: TCustomForm): Integer;
begin
PopupParent := ParentForm;
Result := inherited ShowModal;
end;
但是在调试时(表单放置丢失的问题,在 FormCreate 中设置)我意识到设置 PopupParent
会导致调用 ReCreateWindow
,从而破坏并重新创建底层Windows 屏幕对象。
我的问题:
PopupParent
是个好主意吗 - 可能是什么由此产生的问题?是否存在可行的替代方案?编辑:
我认为上面所有链接的问题都解决相同的问题,最好用 3rd link 来描述:
[A form is opened] with ShowModal, this form opens another with ShowModal, so we have stacked modal forms. There is sometimes a problem that when we call ShowModal in new form, it hides behind previous forms, instead of showing on top. After pressing alt+tab, form comes back to the top [...]
最佳答案
这个问题很老了,但仍然相关。有关这方面的最佳信息来源来自 Allen Bauer 本人: http://blog.therealoracleatdelphi.com/2004/02/popupmode-and-popupparent_10.html
(返回: https://web.archive.org/web/20160324062228/http://blogs.embarcadero.com/abauer/2004/02/10/295 )
你会发现这个:“如果您在 ShowModal 之前将 PopupMode 属性显式设置为 pmAuto(例如在设计时),则无需重新创建。”
这样你的代码应该是:
function TMyForm.ShowModal(ParentForm: TCustomForm): Integer;
begin
PopupMode := pmAuto;
PopupParent := ParentForm;
Result := inherited ShowModal;
end;
关于delphi - 调用 ShowModal 并设置 PopupParent 是一个好主意吗?在较新的 Delphi 版本中是否有必要?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27864668/
为了防止新创建的模态窗口隐藏在其模态父窗口下,我习惯在调用 ShowModal 时始终设置 PopupParent (如建议的 here 、 here 和 here ) : function TMyF
我是一名优秀的程序员,十分优秀!