起步软件技术论坛-X3

 找回密码
 立即注册
搜索
查看: 293|回复: 10

【结贴】如何获取表格文档运行时的宽度?

[复制链接]
发表于 2007-8-20 10:55:20 | 显示全部楼层 |阅读模式
参考帖
我们遇到了和在上边帖子中提到的比较类似的需求:在功能中使docview中表格文档显示的内容居中,目前的实现方式是在docview两边加2个相同宽度的panel,通过获取docview中表格文档的宽度来动态改变2个panel的宽度来达到使表单文档居中的效果。
ps:因为我们在开发时使用的标准分辨率是1024*768,而客户机器的分辨率不一定是1024*768还是1280*1024,所以需要控制使表格文档居中。
目前遇到的问题:如何获取表格文档运行时的宽度?
回复

使用道具 举报

发表于 2007-8-20 10:58:22 | 显示全部楼层
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-8-20 11:11:40 | 显示全部楼层
最初由 jiahaiminghr 发布
[B]? [/B]

:nosweat: 错点了ctrl+enter,没写好的帖子就给发出来了。
回复 支持 反对

使用道具 举报

发表于 2007-8-20 12:49:28 | 显示全部楼层
抱歉,这个应该是获取不到的。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-8-20 14:44:30 | 显示全部楼层
那表格文档内区域的宽度能否获取到呢?

现在实现的方法:
procedure XForm.SetDocPanelSize();
var
  iWidth : Integer;
begin
  //iDocViewWidth是在功能初始化或者FormShow时获取的表格文档中内容的宽度,在整个功能生存期时固定值
  if iDocViewWidth > pDocPanel.Width then //
  begin
    plDocPanelLeft.Width := 0;
    plDocPanelRight.Width := 0;
    exit;
  end
  else
  begin
    iWidth := Business.System.Math.Floor( (pDocPanel.Width - iDocViewWidth) / 2   ))  ;
    plDocPanelLeft.Width := iWidth;
    plDocPanelRight.Width := iWidth;
  end;
end;
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-8-21 11:02:55 | 显示全部楼层
麻烦看一下这个问题.
回复 支持 反对

使用道具 举报

发表于 2007-8-21 11:21:47 | 显示全部楼层
楼主,区域的属性也无法获取,只能获取区域包含的列数,但是没有意义(不知道每一列的宽度)

你试试看设个固定的宽度如何(文档的宽度好像是固定,不会应为分辨率变化而改变)。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-8-21 15:44:37 | 显示全部楼层
设定文档的宽度就是设置表格文档的pageinfo中的width属性了,这样就需要做表格文档开发时很明确的知道所做表格文档的宽度,这个在实际操作中还是有些麻烦的:要把区域内所有单元格的宽度累加起来,还要注意表格文档宽度的计量单位,默认是象素,而表格文档默认计量单位是毫米。
没有更简单的方式么?
还有如果说无法获取表格文档的运行时宽度,docview的横向滚动条是怎么出来的?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-8-22 09:15:20 | 显示全部楼层
继续关注下.
回复 支持 反对

使用道具 举报

发表于 2007-8-22 10:23:52 | 显示全部楼层
楼主,找到办法了,可以用SheetDoc.Sheet.ColWidths[N]来获取每一列的宽度,只是这里的列要比数据集区域包含的列多,所以在计算时要注意一下
var
  i, width: Integer;
begin
  //DocViewDDSQB_DDBG.SetFocus;  SheetDoc.Sheet.ColWidths[N]
  width := 0;
  for i := 0 to TSheetDoc(DocViewDDSQB_DDBG.Doc).Areas[0].Width-1 do
    width := width + TSheetDoc(DocViewDDSQB_DDBG.Doc).Sheet.ColWidths;
  panel1.Width := (Self.Width-Width) div 2;
end;
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Justep Inc.

GMT+8, 2025-1-16 05:07 , Processed in 0.043610 second(s), 15 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表