Foxtable(狐表)用户栏目专家坐堂 → 如何通过代码获得,当前狐表项目的分辨率。


  共有11512人关注过本帖树形打印复制链接

主题:如何通过代码获得,当前狐表项目的分辨率。

帅哥哟,离线,有人找我吗?
pc005637
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1038 积分:12915 威望:0 精华:0 注册:2011/5/29 15:19:00
如何通过代码获得,当前狐表项目的分辨率。  发帖心情 Post By:2012/3/11 10:22:00 [只看该作者]

因为各个客户端的电脑的分辨率的不同,另外各人使用习惯不同(有些喜欢将项目最大化使用,有些喜欢缩小成窗口模式使用)

 

设计思路:根据当前项目窗口的分辨率(不是系统的分辨率),来调整项目中各个表的大小,代码为:Tables("表").OpenView("表视图")

 

不过这样得先获得当前项目窗口的分辨率,

 

另外想在SystemIdle事件中设定代码来自动调整,或者在MainTableChanged事件来调整。当然要有个判断的代码来判定当前分辨率是否需要调整。

 

请问这个功能能否实现,谢谢。


 回到顶部
帅哥哟,离线,有人找我吗?
程兴刚
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:超级版主 帖子:7258 积分:40773 威望:0 精华:16 注册:2008/8/31 23:23:00
  发帖心情 Post By:2012/3/11 12:29:00 [只看该作者]

获取当前显示分辨率的宽度值和窗口宽度,根据系统不同的分辨率和这些不同窗口宽度,打开不同的表视图,不就解决了吗?

 


 回到顶部
帅哥哟,离线,有人找我吗?
pc005637
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1038 积分:12915 威望:0 精华:0 注册:2011/5/29 15:19:00
这个是窗口最大化时的情况。如果是在窗口化的状态呢?  发帖心情 Post By:2012/3/11 12:37:00 [只看该作者]

这个是窗口最大化时的情况。如果是在窗口化的状态呢?

 回到顶部
帅哥哟,离线,有人找我吗?
程兴刚
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:超级版主 帖子:7258 积分:40773 威望:0 精华:16 注册:2008/8/31 23:23:00
  发帖心情 Post By:2012/3/11 12:40:00 [只看该作者]

都一样,只要您按照上述办法,都能解决,相当于您在设计时预置N种模式,不同的情况下调用不同的表视图!

 回到顶部
帅哥哟,离线,有人找我吗?
pc005637
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1038 积分:12915 威望:0 精华:0 注册:2011/5/29 15:19:00
回复:(程兴刚)都一样,只要您按照上述办法,都能解...  发帖心情 Post By:2012/3/11 14:53:00 [只看该作者]

上次的方法,是在项目窗口在最大化时合适,因为如果系统分辨率为:1280*1024 而项目窗口模式时分辨率为:1024*768时,为1280设计的表视图就会显示不全了。我想动态获得当前项目窗口的分辨率,而切换不同的表视图。


 回到顶部
帅哥哟,离线,有人找我吗?
程兴刚
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:超级版主 帖子:7258 积分:40773 威望:0 精华:16 注册:2008/8/31 23:23:00
  发帖心情 Post By: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
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1038 积分:12915 威望:0 精华:0 注册:2011/5/29 15:19:00
就是求个得到窗口分辨率的代码啊!  发帖心情 Post By:2012/3/11 20:10:00 [只看该作者]

谢谢,请教代码

 回到顶部
帅哥哟,离线,有人找我吗?
gzdw
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:小狐 帖子:308 积分:3351 威望:0 精华:0 注册:2011/12/22 17:52:00
  发帖心情 Post By:2012/3/11 21:40:00 [只看该作者]

一楼的需求有点不好理解:

“根据当前项目窗口的分辨率(不是系统的分辨率),来调整项目中各个表的大小,”

一般情况是根据“系统的分辨率”,来调整窗口的大小。

而系统分辨率可能通过

“屏幕宽度”、 “屏幕高度”获得,即:

 

SysInfo.ScreenWidth 、 SysInfo.ScreenHeight


 回到顶部
帅哥哟,离线,有人找我吗?
pc005637
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1038 积分:12915 威望:0 精华:0 注册:2011/5/29 15:19:00
就是项目为窗口模式时的分辨率。  发帖心情 Post By:2012/3/12 1:19:00 [只看该作者]

窗口模式知道吧?不是最大化满屏,不是最小化的时候,现在有些玩网游什么的,不是将开几个游戏窗口来运行吗?如果屏幕够大的话,可以同时看几个窗口啊。能明白吗?

 回到顶部
帅哥哟,离线,有人找我吗?
程兴刚
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:超级版主 帖子:7258 积分:40773 威望:0 精华:16 注册:2008/8/31 23:23:00
  发帖心情 Post By:2012/3/12 1:31:00 [只看该作者]

没意义!

 

用示例文件说话!


 回到顶部
总数 12 1 2 下一页