【发布时间】:2022-01-05 00:18:38
【问题描述】:
不知道你有没有注意到,但是如果你最大化一个TForm 然后最小化它,如果你读取它的宽度和高度(在这个最小化状态下),你会得到表单在最大化之前的值...在我看来,这是错误的。
当我的表单最小化时,有时它需要根据表单的ClientWidth 和ClientHeight 重新排列控件。因此,如果最后一个 Form 尺寸以及它从最小化返回的尺寸是最大化状态下的尺寸,如果我得到规范化 Form 的 Width 和 Height,我的控件将被错误地排列。
你知道当窗体从最大化状态最小化时,我如何读取真正的ClientWidth 和ClientHeight 吗?
【问题讨论】:
-
如果您需要查询最小化表单的视觉属性,您的设计可能存在缺陷。
-
看看
GetWindowPlacement(),它报告了窗口从最小化/最大化状态移动到恢复状态时的正常位置和大小。 -
@RemyLebeau 我分析了那个函数,它似乎没有返回最大化的窗口大小。它仅返回
rcNormalPosition的宽度和高度。 -
如果您觉得需要重新排列控件,当表单的大小发生变化时,您就有了设计问题。在构建(动态)GUI 时,面板是您的朋友。
标签: forms delphi minimize delphi-10.3-rio