在Delphi中,如果使用TCustomGrid或其派生类,如果要使它能够显示当前行的时候,我们可以这样来设置
AGrid.Row := ARow(指定行),Grid一般来说会自动滚动到指定的行,但如果这个Grid还从未被显示过出来,就是说这个Grid动态创建后就马上显示出来,它就不会自动滚动到当前行了。
不知道是我还没找到其内在的解决方法,还是TGrid本来就是这样的。请大家帮忙一下。
AGrid.Row := ARow(指定行),Grid一般来说会自动滚动到指定的行,但如果这个Grid还从未被显示过出来,就是说这个Grid动态创建后就马上显示出来,它就不会自动滚动到当前行了。
不知道是我还没找到其内在的解决方法,还是TGrid本来就是这样的。请大家帮忙一下。
解决方案 »
- 如何获得窗口句柄 具体
- 关于静态数组的问题
- adostoredpro控件参数传递问题!! 郁闷半天了。
- 关于三层的调试错误
- 有关 pb 调用 delphi dll 的问题!!!!!!纯粹送分
- 哪里有Delphi6 Developer's Guide的源码
- 菜鸟问题:如何比较方便地在Delphi6中重载并使用虚函数?
- 做一个网站,对防黑方面要具备哪方面的能力和要掌握哪几门技术?
- 请教midas的概念、方法、原理等等它的一切!
- 为什么不能定义实型 Float;
- 请问如何使用程序搜索局域网机器上安装全部打印机。想做一个局域网打印机管理程序!
- 如何使用ZLib单元的方法完成压缩整个目录,并且解压后目录结构不发生变化
顺便把自己写的程序贴出来procedure TCustomGrid.TurnPageTo(const ARow: Integer);
var
NewTopLeft, MaxTopLeft: TGridCoord;
DrawInfo: TGridDrawInfo;
begin
CalcDrawInfo(DrawInfo);
MaxTopLeft.X := ColCount - 1;
MaxTopLeft.Y := RowCount - 1;
MaxTopLeft := CalcMaxTopLeft(MaxTopLeft, DrawInfo);
NewTopLeft := FTopLeft;
NewTopLeft.Y := ARow;
NewTopLeft.X := Math.Max(FixedCols, Math.Min(MaxTopLeft.X, NewTopLeft.X));
NewTopLeft.Y := Math.Max(FixedRows, Math.Min(MaxTopLeft.Y, NewTopLeft.Y));
if (NewTopLeft.X <> FTopLeft.X) or (NewTopLeft.Y <> FTopLeft.Y) then
MoveTopLeft(NewTopLeft.X, NewTopLeft.Y);
end;
-------
以前写的。有点傻。