繁体   English   中英

滚动条的TForm问题

[英]TForm issue with scrollbars

我创建了一个Delphi 7应用程序。 主要形式是具有以下属性的TForm对象:

BorderIcons:
- biSystemMenu = True
- biMinimize = True
- biMaximize = False
- biHelp = False

BorderStyle = bsSizeable

Position = poScreenCenter

Event OnCanResize: Resize := FALSE;

想法是,表单无法最大化,也无法调整大小,仅此而已。 它工作正常,但是当我在某些系统(Windows 7和Windows XP)上运行时,显示了滚动条。 同样,仅在某些系统中。

我认为这是因为显示器的屏幕分辨率太小,所以应用程序窗口被剪切了。 但是,事实并非如此。 该应用程序完美地显示在中央。

到目前为止,我尝试从互联网上应用许多技巧和窍门:

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 OS强制应用程序采用该价值吗?

因为过去,我的应用程序根本没有这个问题。 但是,然后,我更改了表单大小,添加了更多的GUI,然后问题就来了。 现在,我在想,原始的TForm属性存储在某个地方。

Windows> XP中的边框更大。 我不确定Constraints作用,因为我没有使用它们。 您是否测试过在组件与表格的右/底端之间使用更大的距离?

编辑:某些组件在不同的操作系统上具有不同的默认大小。

编辑2:您的窗体不应调整大小,因此您可以使用BorderStyle:= bsSingle关闭大小调整。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM