如何保持界面的一致性。(100分)

斗士

Unregistered / Unconfirmed
GUEST, unregistred user!
窗体的Scaled已为False,字体用小五,宋体,所有控件ParentFont为True;
程序界面更换系统后,特别是分辨率改变,界面简直难于忍受。
字体变形,编辑框变形。
不知还有那里疏忽了。
标准界面应如何设置。
 

来如风

Unregistered / Unconfirmed
GUEST, unregistred user!
那你应该让你程序适应不同的分辨率,我这里有个例子,我没有测试
假设你在800*600的分辨率下设计的form,第一步:
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 - 1do
wnto 0do
TFooClass(Controls).Font.Size :=
(NewFormWidth div OldFormWidth) *
TFooClass(Controls).Font.Size;
end;

 
H

htw

Unregistered / Unconfirmed
GUEST, unregistred user!
我现在维修的中兴callcenter 座席程序也是小五,宋体,
也不知道当初最早写程序的人是怎么想的?
幸好用的人都是电信局雇用的小姐们,她们人年轻,眼睛都好,还不是问题。
这两天江苏南通电信要用我们的客服系统,人家准备用15'的液晶显示器,是1024x768的分辩率。
我们原来的设计的是800x600的,在1024x768还可以用,就是字体小得不得了。
呵呵, 看样子南通电信该用17'的液晶显示器了!
 

斗士

Unregistered / Unconfirmed
GUEST, unregistred user!
挺复杂,试试。
 
L

LiChaoHui

Unregistered / Unconfirmed
GUEST, unregistred user!
看看微软的程序时怎么解决这种问题的吧,
 

少爷的拐杖

Unregistered / Unconfirmed
GUEST, unregistred user!
如果你在Win2000下编程.记得更改字体的编码为GB2312.这样就不会在98下变形了!
 

斗士

Unregistered / Unconfirmed
GUEST, unregistred user!
我用的是Windows XP,
只要分辨率不变,因该没问题。
 

斗士

Unregistered / Unconfirmed
GUEST, unregistred user!
谢谢少爷的拐杖。
总结如下:
窗体的Scaled已为False,字体用小五,宋体,所有控件ParentFont为True;
关键:字体Font属性设置字符集CHINESE_GB2312;
通过测试,无论屏幕大小,分辨率如何,控件不会变形。
 

斗士

Unregistered / Unconfirmed
GUEST, unregistred user!
接受答案了.
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
D
回复
0
查看
2K
DelphiTeacher的专栏
D
D
回复
0
查看
2K
DelphiTeacher的专栏
D
顶部