我创建了一个Delphi 7应用程序。其主要形式是以下特性的TForm的对象:滚动条的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的参数,如宽度,高度,保存和存储的地方在系统??? Windows操作系统强制应用程序采取该值?
因为在过去,我的应用根本没有这个问题。但之后,我改变了表格大小,增加了一些gui,然后问题就出现了。现在,我想,原始的TForm属性存储在某个地方。
['Constraints'](http://docwiki.embarcadero.com/Libraries/en/Vcl.Controls.TControl.Constraints)用于控件的边界限制器(您可以指定最小和最大宽度或高度)。 – TLama 2012-08-10 08:36:12
是的,我测试过了。但是,让我困惑的事情。并非所有的XP和Windows 7都表现出相同的行为。该应用程序已在许多机器上使用和测试,到目前为止,我发现1 XP和1 Windows 7有这个问题。我急于找出原因。到目前为止,没有运气。我试图将Windows Theme更改为Classic,更改屏幕分辨率等。没有运气。我认为这可能来自以前的版本(有滚动条问题),但我不保存任何表单设置。 – ewlung 2012-08-10 12:22:40
你有一台XP机器有这个问题? - 奇怪。 猜测:尝试比较Windows设置中的DPI值。 下一个(也是最后一个)猜测:有一个名为PrintScale的属性。尝试改变这一个。 – rollstuhlfahrer 2012-08-10 12:31:13