我創建了一個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