如何让界面适应不同的字体与分辨率(100分)

  • 主题发起人 主题发起人 luckystar
  • 开始时间 开始时间
L

luckystar

Unregistered / Unconfirmed
GUEST, unregistred user!
1。以前有人问过这个问题,最终还是没有一个令人满意的结果。
小弟特出资100,希望哪位大侠能给我一个详细的解答。
2。顺便问一下,在delphi中运行程序时突然跳出一个Win3.1时代
的那种白色对话框,说程序出错,然后连蓝屏都没有,显示器变黑,
彻底死掉。这是什么原因?
先谢了 :)
 
1.多用容器控件,比如Panel, ScrollBox等。设置Align.
2.用Splitter.
 
有个控件叫TResize,就是解决这种分辨率问题的。:)
 
設置form的scaled屬性為true(分辨率)

 
1。我也想知道
2。我也遇到过,CODE问题
 
1.to 邹光先: 您所说的Tresize,到哪里去找?
2.我的程序调试成功后,想美化一下界面,就在窗体中放了一个image,在form1
的oncreate事件中加入:
form1.brush.bitmap:=image1.picture.bitmap;
第一次运行成功,当我改了一下无件的位置,再运行,可怕的事情发生了!
天!它毁了我的所有程序!!(痛哭)
这个对话框是中文的,应该来自windows...
我看不出这行句子有什么问题...
谁来帮帮我?

 
>>設置form的scaled屬性為true(分辨率)

SCALE过程在调整控件宽度和高度的同时,也自动调整控件字体的大小,
以适应新的分辨率,但美中不足的是它并不改变控件的顶点坐标位置,也就
是说,该过程不改变控件之间的相对位置关系。要想调整控件之间的相对位
置,还需要自己编程实现……
 
ahm 控件集中有这末一个控件可以设置分辨率。找找看,即简单又实用。
在delphi中运行程序时突然跳出一个Win3.1时代的那种白色对话框,说程序出错,然后连蓝屏都没有,显示器变黑
这种情况我遇到过。但屏幕没有变黑。窗体变成白色呈死机状。后来我找到一个办法。即按 f9 编程序重新运行一遍,就好了
 
>>form1.brush.bitmap:=image1.picture.bitmap;
用assign
 
对于问题2,我想用一幅位图充满整个窗体。我又换了一种方法还是不行:
private
map:Tbitmap;
...
在onpaint中:
map:=Tbitmap.create;
try
map.loadformfile('d:/b.bmp');
form1.canvas.brush.bitmap:=map;
form1.canvas.fillRect(rect(0,0,form1.width,form1.height));
fianlly
form1.canvas.brush.bitmap:=nil;
map.free;
end;
一样的,可以运行,但多运行几次,就出现上述的情况。。。
我用的是Win98,Delphi5.
奇怪奇怪真奇怪。。。

 
问题1:

// 注意: Form1.AutoScroll := False;
// 字体最好用Arial;

const DesignWidth = 800; // 设计时: 800*600
procedure TForm1.FormCreate(Sender: TObject);
var
iAmountScaled: Integer;
begin
iAmountScaled := Round(Screen.Width * 100 / DesignWidth);
ScalBy(iAmountScaled, 100);
end;
 
还有一个问题,我在PWIN上开发的东东,放在EWIN上运行,发现模样大变,很多地方
都错位了。不知道各位有何高招?是不是只能在EWIN上重新做一次?
 
>>在PWIN上开发的东东,放在EWIN上运行,发现模样大变

就是字体和分辨率的问题呀.
 
You're always creating software that looks great at your monitor's resolution. Unfortunately, if you designed your application on a high-resolution screen, it may be larger than the available screen space on the client screen. You can solve this problem by letting Delphi automatically add scroll bars at run-time. However, using Delphi's automatic scaling produces more professional results. At run-time, Delphi asks the system for the screen resolution and stores it in the PixelsPerInch property of your application's Screen object. Next, it uses the PixelsPerInch value to resize the form for the current resolution. Here are some things to remember, to make this technique work effectively: set the Scaled property of your form(s) to TRUE, use only TrueType fonts, use Windows small fonts when you develop, and set the AutoScroll property of your form(s) to FALSE.

 
感谢各位大侠的帮助!
发分了,见者有份:)
 

Similar threads

后退
顶部