集中儿童表格不起作用

Jef*_*rdo 0 delphi c++builder

我有一个如下工作的应用程序:有一个主要表单,它是用于注册,搜索等的开放子表单.目的是在主表单的中心始终打开子表单,无论其大小如何.为此我在表单son onCreate中使用以下代码:

formChild->Left=(MainForm->pnlMain->Width/2);
formChild->Top=(MainForm->pnlMain->Height/2)-(formChild->Height/2);
Run Code Online (Sandbox Code Playgroud)

到目前为止一切正确,表单正确居中,如下图所示:

在此输入图像描述

关闭子窗体时,将恢复主窗体并打开子窗体,出现以下问题: 在此输入图像描述

子表单是在第一次生成的位置生成的(使用最大化窗口).

Sil*_*ior 5

处理此问题的正确方法是将Child Form的Position属性设置为poMainFormCenter.

这将确保在第一次创建和显示子表单时,它将以MainForm为中心.

注意,如果您只是隐藏它,然后稍后再次显示,则不会更新子表单的位置.如果您需要每次显示子窗体时始终居中,则应在关闭时将其销毁,然后在显示之前重新创建它.