程序怎么自动适应当前屏幕分辩率?

lzk005 2009-06-03 07:20:16
delphi作的程序怎么实现窗体控件自动适应当前屏幕分辩率?
并不是像游戏那样强制改变当前屏幕分辩率,有什么好办法重绘呢
...全文
99 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
xiaowei_001 2009-06-04
  • 打赏
  • 举报
回复
方法都比较笨觉得,目前没发现好办法
de410 2009-06-04
  • 打赏
  • 举报
回复
在单元的Interface部分定义两个常量,表示设计时的屏幕的宽度和高度(以像素为单位)。
在表单的Create事件中先判断当前分辨率是否与设计分辨率相同,如果不同,调用表单的SCALE过程重新能调整表单中控件的宽度和高度。



Const
Orignwidth=800;
Orignheight=600;

procedure TForm1.FormCreate(Sender:TObject);
begin
scaled:=true;
if (screen.width<>orignwidth) then
begin
height:=longint(height)*longint(screen.height)divorignheight;
width:=longint(width)*longint(screen.width)divorignwidth;
scaleby(screen.width,orignwidth);
end;
end;
taste品味 2009-06-04
  • 打赏
  • 举报
回复
动态定位罗
取得当前分辨率,设置合适的比例。
再设置位置
mdejtod 2009-06-03
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 sparklerl 的回复:]
up 好像是今天第一帖

根据分辨率 动态设置元素的大小和位置

不过好像很烦
[/Quote]
之前试过一下,效果很差,可能是我的代码有问题
sparklerl 2009-06-03
  • 打赏
  • 举报
回复
up 好像是今天第一帖

根据分辨率 动态设置元素的大小和位置

不过好像很烦
ccrun.com 2009-06-03
  • 打赏
  • 举报
回复
这个合理安排,不是一句话能说清的。
你可以先建一个新工程,随便添加一些控件在Form上,然后通过设置每个控件的Anchors的不同值,然后拖动窗体进行缩放时,就可以看到每个控件的大小和位置的变化情况。
lzk005 2009-06-03
  • 打赏
  • 举报
回复
怎么才算合理呢?
我在窗体里面大多都是用panel来控制其他控件的位置,但是在不同的分辩率下,有的控件还是看不完整。
ccrun.com 2009-06-03
  • 打赏
  • 举报
回复
合理安排控件的Align和Anchors属性

2,497

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 数据库相关
社区管理员
  • 数据库相关社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧