Delphi是古董級編程工具,但比COLBOL年輕,而且至今仍然在不斷推出新版本。Delphi 7從發(fā)行到今天也快20年了,在64位Win10下還能夠穩(wěn)定運行,不能不說當年Borland公司的工程師真的都是天才。
但是Delphi 7寫的程序,運行時窗體總是和設計期不一樣,變形,特別是窗體的邊緣處,丑。這件事情不是新情況,當年Windows 2000/XP出現的時候,Delphi桌面程序在Win98和win2000/XP/2003之間窗體都有一些變化,人們提出各種解決辦法;到win7/8/10時代,Delphi也只能以兼容方式在這些系統上運行,好在我用它只是方便解決一些批量的自動化的手邊兒事,對窗體變形不變形沒有太高的要求。今天恰巧,解決了這個疑難。
所謂窗體的變形,就象圖中的這個按鈕,本來按鈕下邊界和窗體下邊界,在設計期是有一定的間距的,比較符合規(guī)范。但若以默認的設置,運行期就是右側的樣子,那個間距消失了,看著比較不舒服。
把窗體的borderstyle設置成bsSingle(原來默認是bsSizeable),再把AutoScroll屬性設置設置為False(原來默認是True)。編譯,運行,邊界間距就正常了。
如果在事件過程里寫
borderstyle:=bsSingle;
form1.AutoScroll:=False;
也是可以的,且不必調用update和Refresh,當然窗體會在事件發(fā)生時迅速一閃。
這里設置的關鍵,實際應該只要boderstyle就可以了,但是有時候總會遇到這樣或那樣的問題,一般為保證窗體不變形的幾個窗體屬性,除borderstyle之外,大略有
Font.Charset= ANSI_CHARSET/或GB2312_CHARSET
Scaled= False
AutoSize= False
AutoScroll= False
順手把以前搞的一個排考場的東西修改了一下,正常了。