Delphi 7窗体在Win10下保持窗体固定形状的设置
Delphi是古董级编程工具,但比COLBOL年轻,而且至今仍然在不断推出新版本。Delphi 7从发行到今天也快20年了,在64位Win10下还能够稳定运行,不能不说当年Borland公司的工程师真的都是天才。
但是Delphi 7写的程序,运行时窗体总是和设计期不一样,变形,特别是窗体的边缘处,丑。这件事情不是新情况,当年Windows 2000/XP出现的时候,Delphi桌面程序在Win98和win2000/XP/2003之间窗体都有一些变化,人们提出各种解决办法;到win7/8/10时代,Delphi也只能以兼容方式在这些系统上运行,好在我用它只是方便解决一些批量的自动化的手边儿事,对窗体变形不变形没有太高的要求。今天恰巧,解决了这个疑难。
所谓窗体的变形,就象图中的这个按钮,本来按钮下边界和窗体下边界,在设计期是有一定的间距的,比较符合规范。但若以默认的设置,运行期就是右侧的样子,那个间距消失了,看着比较不舒服。
把窗体的borderstyle设置成bsSingle(原来默认是bsSizeable),再把AutoScroll属性设置设置为False(原来默认是True)。编译,运行,边界间距就正常了。
如果在事件过程里写
borderstyle:=bsSingle;
form1.AutoScroll:=False;
也是可以的,且不必调用update和Refresh,当然窗体会在事件发生时迅速一闪。
这里设置的关键,实际应该只要boderstyle就可以了,但是有时候总会遇到这样或那样的问题,一般为保证窗体不变形的几个窗体属性,除borderstyle之外,大略有
Font.Charset= ANSI_CHARSET/或GB2312_CHARSET
Scaled= False
AutoSize= False
AutoScroll= False
顺手把以前搞的一个排考场的东西修改了一下,正常了。