我创建了一个Delphi 7应用程序。主窗体是具有以下属性的TForm对象:
BorderIcons:
- biSystemMenu = True
- biMinimize = True
- biMaximize = False
- biHelp = False
BorderStyle = bsSizeable
Position = poScreenCenter
Event OnCanResize: Resize := FALSE;
这个想法是形式无法最大化,无法调整大小,这就是全部。 它工作正常,但是当我在某些系统(Windows 7和Windows XP)上运行时,会显示滚动条。同样,仅在某些系统中。
我认为这是因为显示器的屏幕分辨率太小,因此app窗口被剪裁了。但事实并非如此。该应用程序在中心完美显示。
到目前为止,我试图从互联网上应用许多技巧和提示:
OnFormShow:
if VertScrollBarVisible(MainForm.Handle) then
begin
MainForm.Constraints.MaxHeight := MainForm.Constraints.MaxHeight + 10;
MainForm.Constraints.MinHeight := MainForm.Constraints.MinHeight + 10;
MainForm.Height := MainForm.Height + 10;
end;
if HorzScrollBarVisible(MainForm.Handle) then
begin
MainForm.Constraints.MaxWidth := MainForm.Constraints.MaxWidth + 10;
MainForm.Constraints.MinWidth := MainForm.Constraints.MinWidth + 10;
MainForm.Width := MainForm.Width + 10;
end;
它固定在某些系统上......但不是全部。
这让我很困惑。
我有另外一个提示,设置TForm.Scaled:= FALSE,和TForm.AutoScroll:= FALSE。 修复了那些系统,但表格的底部被切断了! ......一点点。
所以,现在我要问......
这些TForm参数,如WIDTH,HEIGHT,是否保存并存储在系统中的某处? Windows操作系统会强制应用程序获取该值吗?
因为在过去,我的应用根本没有这个问题。但后来,我改变了表单大小,增加了一些gui,然后问题来了。现在,我在想,原始的TForm属性存储在某个地方。
答案 0 :(得分:0)
Windows中的边框> XP更大。我不确定Constraints
做了什么,因为我没有使用它们。您是否测试过在组件和表单的右/底端之间使用更大的距离?
编辑:某些组件在不同的操作系统上具有不同的默认大小。
编辑2:您的表单不应调整大小,因此您可以使用BorderStyle关闭大小调整:= bsSingle。