如何解决屏幕分辨率的问题 我写的程序是在1024*768的分辨率下写的拿到800*600上就满屏,问高手如何解决该问题谢谢 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 form.scale:=false;设计小于800*600的窗口 最好的方法,可能就是程序启动时首先检测系统分辨率,如果不符合要求,就更改为符合要求的。比如你的分辨率是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; 你把你的form的大小不要让读者调不是就可以了吗??把borderstyle调到bsnone不是就好了吗?? delphi 播放当前目录下的音频文件? 以及什么控件能加载音频文件?? delphi6调用C#做的COM的问题 如何将一个DBGrid控件的多条记录添加到另一个DBGrid控件中, DELPHI6与DB2数据的问题,进来看看,谢谢 一个关于Tquery只读属性问题 从TEdit创建一个的组件,怎么写能让组件拖到窗口中时Text为空?并在创建时也为空。 离去(都看看吧, 看看一个即将绝望的人) 大家能不能介绍几个国外的比较好的编程论坛? delphi MD5加密的问题 求:判断一个字符在一个字符串里出现次数的函数. 小弟第一次写自定义函数各位高手给提点意见 Pascal 紧急求救!!!
设计小于800*600的窗口
我的方法根据高手的指点定义两个全局变量。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;
把borderstyle调到bsnone不是就好了吗??