Re:不同分辨率下的程序设计问题
我在csdn上找到了关于不同分辨率下的程序设计问题的答案,其中有一个是这样写的
最好的方法,可能就是程序启动时首先检测系统分辨率,如果不符合要求,就更改为符合要求的。比如你的分辨率是1024X768,用户是800X600。那就在程序启动的时候把系统分辨率更改。在程序退出的时候再把分辨率修改回原来状态。我觉得这样可能是最好,最完美,最省事的方法了。
我的方法根据高手的指点定义两个全局变量。SCREENX,SCREENY:INTEGER;
procedure Tmainwinform.FormCreate(Sender: TObject);
var
sx, sy: Integer;
DevMode: TDeviceMode;
begin
sx := GetSystemMetrics(SM_CXSCREEN); //分辨率宽
sy := GetSystemMetrics(SM_CYSCREEN); //分辨率高
//用于在程序结束时把分辨率 改回原始状态
screenx := sx; //分辨率宽
screeny := sy; //分辨率高
if (sx <> 1024) and (sy <> 768) then
begin
DevMode.dmFields := DM_PELSWIDTH or DM_PELSHEIGHT;
DevMode.dmPelsWidth := 1024;
DevMode.dmPelsHeight := 768;
ChangeDisplaySettings(DevMode,0); //设置新的显示参数
end;
程序关闭时把分辨率修改为原来状态:
procedure Tmainwinform.FormClose(Sender: TObject;
var Action: TCloseAction);
var
sx, sy: Integer;
DevMode: TDeviceMode;
begin
sx := GetSystemMetrics(SM_CXSCREEN); //分辨率宽
sy := GetSystemMetrics(SM_CYSCREEN); //分辨率高
if (sx <> screenx) and (sy <> screeny) then
begin
DevMode.dmFields := DM_PELSWIDTH or DM_PELSHEIGHT;
DevMode.dmPelsWidth := screenx;
DevMode.dmPelsHeight := screeny;
ChangeDisplaySettings(DevMode,0); //设置新的显示参数
end;
actiON:=cafree;
end;
我拿create的代码试了一下(我在1024*768下设计,在800×600下运行),创建的时候分辨率确实能改过来(但最下面的状态栏改不过来,还是处在相对于800×600的位置),但是在fromClose的时候就不行了,不知道为什么?请大家帮忙看看
最好的方法,可能就是程序启动时首先检测系统分辨率,如果不符合要求,就更改为符合要求的。比如你的分辨率是1024X768,用户是800X600。那就在程序启动的时候把系统分辨率更改。在程序退出的时候再把分辨率修改回原来状态。我觉得这样可能是最好,最完美,最省事的方法了。
我的方法根据高手的指点定义两个全局变量。SCREENX,SCREENY:INTEGER;
procedure Tmainwinform.FormCreate(Sender: TObject);
var
sx, sy: Integer;
DevMode: TDeviceMode;
begin
sx := GetSystemMetrics(SM_CXSCREEN); //分辨率宽
sy := GetSystemMetrics(SM_CYSCREEN); //分辨率高
//用于在程序结束时把分辨率 改回原始状态
screenx := sx; //分辨率宽
screeny := sy; //分辨率高
if (sx <> 1024) and (sy <> 768) then
begin
DevMode.dmFields := DM_PELSWIDTH or DM_PELSHEIGHT;
DevMode.dmPelsWidth := 1024;
DevMode.dmPelsHeight := 768;
ChangeDisplaySettings(DevMode,0); //设置新的显示参数
end;
程序关闭时把分辨率修改为原来状态:
procedure Tmainwinform.FormClose(Sender: TObject;
var Action: TCloseAction);
var
sx, sy: Integer;
DevMode: TDeviceMode;
begin
sx := GetSystemMetrics(SM_CXSCREEN); //分辨率宽
sy := GetSystemMetrics(SM_CYSCREEN); //分辨率高
if (sx <> screenx) and (sy <> screeny) then
begin
DevMode.dmFields := DM_PELSWIDTH or DM_PELSHEIGHT;
DevMode.dmPelsWidth := screenx;
DevMode.dmPelsHeight := screeny;
ChangeDisplaySettings(DevMode,0); //设置新的显示参数
end;
actiON:=cafree;
end;
我拿create的代码试了一下(我在1024*768下设计,在800×600下运行),创建的时候分辨率确实能改过来(但最下面的状态栏改不过来,还是处在相对于800×600的位置),但是在fromClose的时候就不行了,不知道为什么?请大家帮忙看看
...全文
相关推荐
neptunia_hyperres:Hyperdimension Neptunia Re;Birth 1 任意分辨率支持(GLIntercept 插件)
超分辨率海王星这是我的 GLIntercept ( ) 插件的源代码,用于支持 Hyperdimension Neptunia Re;Birth 1 中的任意分辨率渲染。 我在几个小时内完成了这一切
触屏re9300专用
对于那些喜欢自定义手机系统或者经常需要升级固件的用户来说,触屏RE9300和对应的MTK6575 RECOVERY是必不可少的工具。它们不仅可以解决常见的刷机问题,还能提升设备的整体性能和稳定性。
SX05RE使用指南.pdf
**1.8 其他常见问题**指南还包含了处理常见问题和故障排除的步骤,如系统崩溃、网络连接问题或游戏无法运行等,帮助用户解决问题并顺畅使用Sx05RE系统。
低分辨率人脸识别LRREID正则化方法1
一种有效的策略是将图像超分辨率(SR)与人脸识别(re-id)相结合,通过联合学习来提高识别性能。然而,这种方法在实际应用中面临梯度反向传播困难的问题,导致超分辨率模型与人脸识别模型之间的兼容性不佳。
低分辨率人脸识别 APSR1
【低分辨率人脸识别APSRS1】是一项针对人员再识别(Person Re-Identification,简称re-ID)技术的研究,旨在解决低分辨率查询图像与高分辨率画廊图像之间的分辨率不匹配问题。


