关于网友提出的“ 怎样得到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