看起来这是一个很老的问题,无论如何,这是宇宙中唯一一个解决这个问题的方法:使用老式的 Windows 编程调整大小方法,使用 API 捕获 WM_SIZE 和 WM_SIZING,这是可靠的方法,并且可以在你知道的每个 Windows 中运行.
当然,这意味着您必须主要使用 GetClientRect() 来确定宽度和高度,然后根据这些值调整控件的大小,这听起来像是试图点燃宇宙飞船,但这是最好的。
否则,您可以在调整大小的过程中做一些更实际和快速的事情,例如:
Control1.Left := Control2.Left + (buttonControl.Width div 2) - (buttonControl3.Width div 2);
//for example widths
Control4.Width := (Control.Width * 4) + (Control.Left * 8) + 54 ;
无论是哪个版本,我都在所有 Windows 中进行这种编码和功能。
您只需要屏幕分辨率上的一些值以供参考,执行如下操作:
iCXSCREEN := GetSystemMetrics(SM_CXSCREEN);
iCYSCREEN := GetSystemMetrics(SM_CYSCREEN);
if ((iCXSCREEN = 1280) and (iCYSCREEN = 720)) or ((iCXSCREEN = 1280) and (iCYSCREEN = 700)) or ((iCXSCREEN = 1280) and (iCYSCREEN = 600)) then begin
// blah blah
end;
希望能帮助别人!
干杯!