我有一个Delphi表单,用作一种启动屏幕(即无边框),我想准确地显示在(主)屏幕的中心(当前使用TForm1.Position:= poScreenCenter来实现此目的)。
在具有缩放比例的4k显示器上(或在Windows中使用百分比大于100%的任何屏幕(“设置”>“显示”>“缩放比例和布局”),此功能均不起作用)。在这种情况下,该窗体将在屏幕的左上角而不是在屏幕的确切中间弹出更多。这似乎是Delphi中与HiDPI相关的错误,因为该程序看起来还不错并且可以很好地运行。
我的猜测是我必须将TForm1.Position设置为poDesigned,并在OnShow事件中手动设置TForm1.Top和Left。问题是:要做什么?确保显示器始终出现在精确的屏幕中心的通用解决方案,而不管显示器的尺寸/分辨率/缩放比例如何。我偶然发现了一个名为“muldiv”的功能,该功能可能会有所帮助,但我不确定如何用它。
我有:
谢谢你的帮助。
最佳答案
要使表格居中,请使用以下代码:
Form1.Left := (Form1.Monitor.Width - Form1.Width) div 2;
Form1.Top := (Form1.Monitor.Height - Form1.Height) div 2;
当然,您可以检查表格不大于监视器。关于windows - 如何在4k屏幕上居中放置Delphi表单? (启用Windows缩放)-poScreenCenter不起作用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/65249092/