我目前正在开发一个全屏应用程序,我想要在屏幕上居中。我在表单上设置了以下设置:
WindowState:= wsMaximized
FormStyle:= fsStayOnTop
然而,由于形状高度和宽度远低于屏幕实际分辨率,因此表格会对齐到左上角。我还尝试在表单上使用“位置”设置,但这些设置似乎都没有达到预期的效果。它们要么没有效果,要么将整个最大化转移到右下角,从而能够看到背后的形式(我希望我已经足够好了)。
三江源
答案 0 :(得分:3)
我理解你的问题的方式是,表单正确地最大化,但组件位于最大化表单的左上角,根据表单设计器中设置的Left和Top属性。
例如,设计师设计的表单:
最大化时显示的表单(这是问题):
如果我对问题的理解是正确的,那么解决方案是将所有组件放在TPanel上,然后将TPanel放在表单上。
有两种方法可以使TPanel居中
1)清除(设置为false)面板的所有锚点,如TLama在其评论中提供的link。
2)将面板置于OnResize事件形式
procedure TForm4.FormResize(Sender: TObject);
begin
Panel1.Left := (ClientWidth - Panel1.Width) div 2;
Panel1.Top := (ClientHeight - Panel1.Height) div 2;
end;
结果如下: