我写了个小东西,但在不同的机器上,显示效果不一样,这是为什么?(100分)

  • 主题发起人 主题发起人 关车月
  • 开始时间 开始时间

关车月

Unregistered / Unconfirmed
GUEST, unregistred user!
说实在的,我不知道这个问题的分类该选什么。
我用Delphi5写了个小东西(在15的显示器上),但我把它考到另一台电脑上(17的显示器)
程序中的Button,lable,edit等控件的大小或者它们上面的字的大小等变得很不爽,
(比如说,edit里面的字大得不能完全看见)。不知各位碰到过这样的事没有。
请问这是什么原因,怎样解决?
 
不是显示器的原因,是操作系统的原因.
 

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).Font.Size :=
(NewFormWidth div OldFormWidth) *
TFooClass(Controls).Font.Size;
end;

 
同意楼上
 
改变控件的字体属性,
一般改为宋体即可,
系统默认的不是宋体,
因此在win98 和在win2000,winxp下显示的就不一样!

 
不错,是操作系统的原因,设计时把字体全部改为宋体,CHINESE_GB2312
 
將17的显示器分辨率設為和15的显示器一樣就行了
 
接受答案了.
 
后退
顶部