我在WIN200+DELPHI5做的软件,在WIN98下打开后,窗口中的控件变的很大,字体也变大了,窗口的WIDTH和HEIGHT也变大了。
解决方案 »
- 谁有甘特图控件发个给我
- A和B在两个不同的内网,通过TCP/IP连接需要打洞吗?
- ◆◆◆求一个用颜色下拉列表选颜色的控件◆◆◆
- dll 和 mdi 的例子。
- 这里有北京思维加速公司的朋友吗?
- TBitMap.LoadFromResourceName中程序如何创建资源文件
- 怎样测试针式打印机的断针?
- Delphi7的Demo在哪里找?
- 今天终于搞定了有密码的Access数据库压缩的问题,CSDN又升了一级,我高兴我散分!
- 如何查询出某个字段内容相同的记录?
- 使用Tquery进行查询,出现错误:When GROUP BY exists, every simple field in projectors must be in GROUP BY.这是怎么回事?
- ***紧急求助,TCP中传送文件的问题!!
采取其它的排放方法可以避免这些问题。注意测试.或者尽量注意使用宋体!
主动式是改变你开发时所用的分辨率那样会缩小你软件上的字体等.被动式是改变当前显示器的分辨率适合你的软件.先改到你规定的分辨率,软件退出时改回原来的设置.
oldwidth,oldheight,oldfreq:integer;//全局变量用来保存原来的设置.
newwidth//新的行宽
newheight//新的高
newfrquency//新的刷新率
oldwidth//原来的行距
oldheight//高
oldfreq//原来的刷新率
procedure Tmain.setscreen(newwidth, newheight, newfrquency:integer);
var
devmode:Tdevicemode;
begin
OldWidth:=GetSystemMetrics(SM_CXSCREEN);
OldHeight:=GetSystemMetrics(SM_CYSCREEN);
if (oldwidth<>newwidth) and (oldheight<>newheight) then
begin
DevMode.dmSize:=sizeof(TDeviceMode);
EnumDisplaySettings(nil, DWORD(-1), DevMode);
DevMode.dmFields:=DM_PELSWIDTH or DM_PELSHEIGHT or DM_DISPLAYFREQUENCY;
DevMode.dmPelsWidth:=NewWidth;
DevMode.dmPelsHeight:=NewHeight;
OldFreq:= DevMode.dmDisplayFrequency;
DevMode.dmDisplayFrequency:=newfrquency;
ChangeDisplaySettings(DevMode,0);
end;
end;
procedure Tmain.FormCreate(Sender: TObject);
begin
setscreen(1024,768,85);
end;procedure Tmain.FormDestroy(Sender: TObject);
begin
setscreen(oldwidth,oldheight,oldfreq);
end;
Const
Owidth=800;
Oheight=600;procedure TForm1.FormCreate(Sender:TObject);
begin
scaled:=true;
if (screen.width<>owidth) and (screen.height<>oheight)then
begin
height:=longint(height)*longint(screen.height)divorignheight;
width:=longint(width)*longint(screen.width)divorignwidth;
scaleby(screen.width,owidth);
end;
end;