1
4
J 的答案在screen.forms中循环。这包含了应用程序中的所有表单,包括非MDI表单,正如我从您的评论中看到的那样。您可以手动筛选主窗体和About Box,但这很混乱,您还需要对其他窗体执行相同的操作。我真的不喜欢这样做,因为它看起来很容易出错。 你的问题是,你只想知道MDI子窗体在父窗体中的z顺序,在这种情况下,有一个更好的解决方案。 MDI子级在MDI父窗体的MDichildren属性中按Z排序顺序列出。查找z深度的代码如下(未测试):
如果在MDichildren数组中找不到该窗体,则返回0到n-1之间的子级的深度,其中0是顶部,而-1。如果您希望“1”的意思是top而不是0,只需将result设置为i+1即可。 |
2
1
使用screen.forms属性迭代应用程序中的表单。它按Z顺序返回它们,完全符合您的需要。 例如,使用1个MDiform和3个MDichild窗体创建应用程序。 在主窗体上的菜单选项中,输入:
这将显示一条消息,列出按z顺序排列的表单名称。它还将列出您的主窗体,但您可以对此进行编码。如果将其他子窗体设为活动窗体,然后再次单击菜单选项,则会看到窗体的顺序已更改。 |
Some1Else · 函数在Delphi中重新创建TForm 2 年前 |
Agmcz · Delphi安卓库。so未安装(AAB) 2 年前 |
nader · 如何使用delphi在web上提交表单 6 年前 |
kwadratens · Delphi中的卡方分布函数代码 6 年前 |
user9672569 · 如何在完整的位图图像中绘制阴影效果? 6 年前 |
mmmm · MSBuild(用于Delphi)Make-like功能 6 年前 |