我在Win2000下写的程序,在Win98下运行窗体和字体变得很大,是何原因?把程序拿到Win98下重新设置窗体大小、字体格式,再编译,这时在Win98下正常但在Win2000下运行改过的EXE窗体和字体变得很小。:(
只有把程序完全在Win98下重新编写编译,在Win98和Win2000两种环境中才都没问题!
在下迷惑?为何?如何解决?还望各位赐教!
只有把程序完全在Win98下重新编写编译,在Win98和Win2000两种环境中才都没问题!
在下迷惑?为何?如何解决?还望各位赐教!
解决方案 »
- MDAC目前最高版本不是2.8吗?注册表里查出的值怎么是 6.0.6002.18005??
- 如何给TMainMenu的Item增加属性?
- 各位大虾,如何将VCD,DVD碟的歌曲名,歌手等信息读出来,好像需要懂得他们的格式才可以吧?
- 求msflexgrid控件安装
- 怎样增加TDateTimePicker控件的Ctl3d属性??]
- 主从表结构中,主表和从表通过一id号关联,如果主表改变了原来已有记录的id号,那么从表的id号如何才能合理地更新为新的id号?
- 谁知,谁懂,谁会,谁晓?
- ADO+Parodx 的愚蠢错误,有经验的人一下子就可以挣100分。
- 各位大侠请帮忙!!!
- form问题!大虾帮忙!
- 怎样创建快捷方式?
- 怎么使用delp制作自适应窗体?
将Font属性下的Height设为固定值。如-12
inplementation
const
ScreenWidth: LongInt = 800; {I designed my form in 800x600 mode.}
ScreenHeight: LongInt = 600;{$R *.DFM}procedure TForm1.FormCreate(Sender: TObject);
begin
scaled := true;
if (screen.width <> ScreenWidth) then
begin
height := longint(height) * longint(screen.height) div ScreenHeight;
width := longint(width) * longint(screen.width) div ScreenWidth;
scaleBy(screen.width, ScreenWidth);
end;
end;下一步,要让每个子控制的字体改变到合适的大小:
type
TFooClass = class(TControl); { needed to get at protected }
{ font property }var
i: integer;
begin
for i := ControlCount - 1 downto 0 do
TFooClass(Controls[i]).Font.Size :=
(NewFormWidth div OldFormWidth) *
TFooClass(Controls[i]).Font.Size;
end;