CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Delphi >  语言基础/算法/系统设计

怎样才能使程序在不同的分辨率下能显示正常?

楼主qinzuozhang(晨曦)2005-09-05 19:40:11 在 Delphi / 语言基础/算法/系统设计 提问

现在我写的程序是win2000+delphi7,分辨率是1024X768,程序的字体是:宋体+小五号,在写程序那台电脑上把分辨设置为800×600也是正常的,到别的电脑上是800×600的就是不正常,是1024×768的也是正常的,发布后在win98下分辨率是800X600,窗体上的控件有一部分不能显示出来。窗体都出现滚动条,请问怎么解决? 问题点数:80、回复次数:10Top

1 楼yuanscar(塑料树)回复于 2005-09-05 19:50:08 得分 10

呵呵,比较困难哦,  
  首先是窗口上所有的控件用panel分组排版,然后所有控件的位置和大小用代码来按照窗口大小的比例进行设置,不能用绝对位置Top

2 楼qinzuozhang(晨曦)回复于 2005-09-05 19:56:43 得分 0

不是吧,有那么烦麻吗?Top

3 楼quicksand201(流沙)回复于 2005-09-05 20:31:44 得分 5

还有更麻烦的,在相同色深相同的分辨率在不同的显示器上显示也是不同的,至少我的程序是这样的,只好凑合着用!Top

4 楼winter_6677(米子)回复于 2005-09-05 20:33:54 得分 30

如果我没理解错的话,我认为该这样解决:  
  首先计算当前的分辨率,然后根据当前的分辨率来调整控件和窗口的大小。  
  如:以下是一个调试通过的小程序。  
             
            //根据当前分辨率调整treeview和scrolbox的大小  
   
      x:=integer(GetSystemMetrics(SM_CXSCREEN));   //取现在的分辨率  
      posy:=integer(GetSystemMetrics(SM_CySCREEN));  
   
      form1.TreeView1.Width:=integer(form1.TreeView1.Width*x   div   800);  
      form1.TreeView1.Height:=integer(form1.TreeView1.Height*posy   div   600);  
   
      form1.ScrollBox1.width:=integer(form1.scrollbox1.Width*x   div   800);  
      form1.scrollbox1.height:=integer(form1.scrollbox1.Height*posy   div   600);  
      form1.scrollbox1.Left:=integer(form1.scrollbox1.Left*x   div   800);  
   
      form1.Panel1.width:=integer(form1.Panel1.Width*x   div   800);  
   
  此为主要代码Top

5 楼hhzqf1980(hh)回复于 2005-09-06 09:05:58 得分 5

最好是把窗口上所有的控件用panel分组排版Top

6 楼gxgyj(杰克逊)回复于 2005-09-06 09:15:48 得分 10

窗体与窗体上的控件随分辨率的改变而相应改变大小,如何实现?  
  http://community.csdn.net/Expert/topic/3752/3752676.xml?temp=.3257715  
  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
  不过俺一惯的做法,是用800*600设计,不管别人用800*600还是1024*768都能正常显示  
  (现在应该不会有谁用640*480吧!)Top

7 楼wtg476(起飞)回复于 2005-09-06 17:40:38 得分 0

楼上的做法好呀  
  Top

8 楼hr168(Ocb.Hr)回复于 2005-09-07 10:09:06 得分 5

你属性编辑器里把Form的Scaled属性设置为FalseTop

9 楼yuanscar(塑料树)回复于 2005-09-07 12:46:30 得分 10

都按照800*600万一用户要你改窗口大小怎么办?现在显示器大部分都大,提出这样的要求是很合理的,看似完美的解决方案其实根本没有使用的价值。  
  有的时候该写代码计算的就非得写,没有办法的事情,要不然怎么说程序员作的是体力劳动呢?Top

10 楼jackie168(http://soft.eastrise.net)回复于 2005-09-08 07:55:34 得分 5

http://community.csdn.net/Expert/topic/4248/4248928.xml?temp=.6211817Top

相关问题

  • 如何:::使程序在不同显示分辨率下,工作正常。。。。。
  • 我怎么使程序在不同的分辨率下都能正常显示?
  • 请问如何使自己的程序在不同的分辨率下都正常显示
  • 怎样才能设置分辨率!!
  • 如果我想编写一个DOS中的图形界面程序,怎样才能得到更高的图形显示分辨率???
  • 在800*600上编写的程序当分辨率变成1024*768时,会出现不正常的显示,有什么
  • 在800*600上编写的程序当分辨率变成1024*768时,会出现不正常的显示,有什么
  • 怎么才能让程序下载时正常运行!
  • 如何安装 .net 才能正常开发WEB程序?
  • access 如何才能正常地调用外部程序?

关键词

  • .net
  • 控件
  • 代码
  • 解决
  • scrollbox
  • 分辨率
  • 窗体
  • 程序
  • 正常
  • 大小

得分解答快速导航

  • 帖主:qinzuozhang
  • yuanscar
  • quicksand201
  • winter_6677
  • hhzqf1980
  • gxgyj
  • hr168
  • yuanscar
  • jackie168

相关链接

  • Delphi类图书
  • Delphi类源码下载
  • Delphi控件下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo