您好,欢迎来到[编程问答]网站首页   源码下载   电子书籍   软件下载   专题
当前位置:首页 >> 编程问答 >> Delphi >> 怎样得到DBGrid当前显示的是哪些Columns?

怎样得到DBGrid当前显示的是哪些Columns?

来源:网络整理     时间:2016/8/22 18:45:19     关键词:

关于网友提出的“ 怎样得到DBGrid当前显示的是哪些Columns?”问题疑问,本网通过在网上对“ 怎样得到DBGrid当前显示的是哪些Columns?”有关的相关答案进行了整理,供用户进行参考,详细问题解答如下:

问题: 怎样得到DBGrid当前显示的是哪些Columns?
描述:

DBGrid横向滚动条移动后,怎样得到当前显示的是哪些Columns


解决方案1:

agui(阿贵 as 三楼的楼长)老哥,你这个方法在下试过,没错。完全可以实现。可为什么TDrawGrid的TopRow不好用呢,就是说无论小弟把滚动条拉到弟几行,第几屏,TDrawGrid(DBGrid1).TopRow的值永远是1。为什么?

解决方案2:

TDBGrid和TDrawGrid都是从TCustomGrid派生而来,TDrawGrid的很多公开属性是在TCustomGrid中定义的,所以可以通过强制转换的方式取这些属性:
1.取得最左边是哪列?
TDrawGrid(DBGrid1).LeftCol
记住要排除DBGrid中第一列是用来指示的,所以要减一下1。
2.然后按照每栏的宽度及整个GRID宽度来计算有哪些列是显示的:
w := 0;
for i:=TDrawGrid(DBGrid1).LeftCol-1 to DBGrid1.Columns.Count-1 do
begin
  if DBGrid1.Columns[i].Showing then // 排除隐藏的列
  begin
    w := w + DBGrid1.Columns[i].Width; // 累加宽度
    if w>DBGrid1.Width then // 超出DBGRID的宽度时就跳出循环
      break;
  end;
end;
在FOR循环中经历的i值就是看得见的列序号。 :=)
可能会有些数字差异,但就是这个方法了。


以上介绍了“ 怎样得到DBGrid当前显示的是哪些Columns?”的问题解答,希望对有需要的网友有所帮助。
本文网址链接:http://www.codes51.com/itwd/3495711.html

相关图片

相关文章