我创建了一个 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 操作系统会强制应用程序获取该值吗?
因为,在过去,我的应用根本没有这个问题。但是后来,我更改了表单大小,添加了更多 gui,然后问题就来了。现在,我在想,原来的 TForm 属性存储在某个地方。