以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- 如何通过代码获得,当前狐表项目的分辨率。 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=17365) |
-- 作者:pc005637 -- 发布时间:2012/3/11 10:22:00 -- 如何通过代码获得,当前狐表项目的分辨率。 因为各个客户端的电脑的分辨率的不同,另外各人使用习惯不同(有些喜欢将项目最大化使用,有些喜欢缩小成窗口模式使用)
设计思路:根据当前项目窗口的分辨率(不是系统的分辨率),来调整项目中各个表的大小,代码为:Tables("表").OpenView("表视图")
不过这样得先获得当前项目窗口的分辨率,
另外想在SystemIdle事件中设定代码来自动调整,或者在MainTableChanged事件来调整。当然要有个判断的代码来判定当前分辨率是否需要调整。
请问这个功能能否实现,谢谢。 |
-- 作者:程兴刚 -- 发布时间:2012/3/11 12:29:00 -- 获取当前显示分辨率的宽度值和窗口宽度,根据系统不同的分辨率和这些不同窗口宽度,打开不同的表视图,不就解决了吗?
|
-- 作者:pc005637 -- 发布时间:2012/3/11 12:37:00 -- 这个是窗口最大化时的情况。如果是在窗口化的状态呢? 这个是窗口最大化时的情况。如果是在窗口化的状态呢? |
-- 作者:程兴刚 -- 发布时间:2012/3/11 12:40:00 -- 都一样,只要您按照上述办法,都能解决,相当于您在设计时预置N种模式,不同的情况下调用不同的表视图! |
-- 作者:pc005637 -- 发布时间:2012/3/11 14:53:00 -- 回复:(程兴刚)都一样,只要您按照上述办法,都能解... 上次的方法,是在项目窗口在最大化时合适,因为如果系统分辨率为:1280*1024 而项目窗口模式时分辨率为:1024*768时,为1280设计的表视图就会显示不全了。我想动态获得当前项目窗口的分辨率,而切换不同的表视图。 |
-- 作者:程兴刚 -- 发布时间:2012/3/11 18:18:00 -- 2楼已经给您说的很清楚了,需要根据不同的系统显示分辨率的情况,进行对窗口不同的窗口宽度进行判断,也就是说,在显示分辨率宽度为1280的情况下,肯定有不同大小的窗口宽度,根据这些不同来打开不同的表视图,您有代码基础,这样给您举一个简单的例子 if 显示宽度 = 1280 if 窗口宽度 > 1024 打开视图1 elseif 窗口宽度 > 1024 打开视图2 elseif 窗口宽度 > 800 打开视图3 end if elseif 显示宽度 = 1024 if 窗口宽度 > 960 打开视图4 elseif 窗口宽度 > 860 打开视图5 elseif 窗口宽度 > 760 打开视图6 end if elseif …… …… else if
上面的数值您自己定,这些方式需要您通过N个判断来预置,其实一般没必要这么解决的,表是有滚动条的,看不见的列拖动滚动条即可解决,您可以不通过打开视图来解决,当然您也可以按照窗口大小的比例来设置各列的宽度,按比例调整以适应列宽,参考SetColVisibleWidth |
-- 作者:pc005637 -- 发布时间:2012/3/11 20:10:00 -- 就是求个得到窗口分辨率的代码啊! 谢谢,请教代码 |
-- 作者:gzdw -- 发布时间:2012/3/11 21:40:00 -- 一楼的需求有点不好理解: “根据当前项目窗口的分辨率(不是系统的分辨率),来调整项目中各个表的大小,” 一般情况是根据“系统的分辨率”,来调整窗口的大小。 而系统分辨率可能通过 “屏幕宽度”、 “屏幕高度”获得,即:
SysInfo.ScreenWidth 、 SysInfo.ScreenHeight |
-- 作者:pc005637 -- 发布时间:2012/3/12 1:19:00 -- 就是项目为窗口模式时的分辨率。 窗口模式知道吧?不是最大化满屏,不是最小化的时候,现在有些玩网游什么的,不是将开几个游戏窗口来运行吗?如果屏幕够大的话,可以同时看几个窗口啊。能明白吗? |
-- 作者:程兴刚 -- 发布时间:2012/3/12 1:31:00 -- 没意义!
用示例文件说话! |