gpt4 book ai didi

delphi - 子窗体始终位于主窗体上方

转载 作者:行者123 更新时间:2023-12-03 14:52:50 25 4
gpt4 key购买 nike

我正在使用delphi 2007,每次我都会使用这样的代码创建一个新表单

var
Child : TFrmChild;
begin
Child:=TFrmChild.Create(Self);
Child.Show();
end;

子表单显示并出现在所有其他表单之上,这是可以的,但是当在主表单中单击时,子表单将保持在主表单之上。所以我有两个问题

  1. 为什么即使在主窗体中单击,子窗体仍保留在主窗体上方?
  2. 当我点击主表单时,如何使主表单停留在所有其他表单之上?

谢谢

更新

这是子表单的 dfm

object FrmChild: TFrmChild
Left = 549
Top = 308
Caption = 'FrmChild'
ClientHeight = 228
ClientWidth = 213
Color = clBtnFace
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -11
Font.Name = 'Tahoma'
Font.Style = []
OldCreateOrder = False
PixelsPerInch = 96
TextHeight = 13
end

最佳答案

您有两个顶级窗口。主窗体是子窗体的所有者。拥有的窗口始终显示在其所有者之上,这只是 Windows 的规则之一。

请注意,我指的是 Windows 概念而不是 Delphi 概念。

Windows Features主题解释了规则。关键语句是:

An owned window is always above its owner in the z-order.

至于如何让你的应用程序表现不同,我不太确定。例如,如果您将子窗体设置为无主,那么它将有自己的任务栏按钮,并且当主窗体最小化时,它不会最小化。

关于delphi - 子窗体始终位于主窗体上方,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5931332/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com