平滑滚动字符串网格

时间:2012-08-17 00:11:31

标签: delphi delphi-xe2 tstringgrid

我需要一个可以平滑滚动的字符串网格,而不是锁定在顶行/左列位置。滚动TStringGrid时,左侧可见列和顶部可见行沿顶部/左侧边缘捕捉到位。我需要能够让用户顺利滚动,而不是将这些边缘锁定到位。

我认为这不可能在VCL TStringGrid(或TCustomGrid中)进行修改,因为它依赖于TopRowLeftCol等属性,VisibleRowCount等。我很确定我需要第三方控件,但如果可能的话,我很想使用TStringGrid,因为我已经有很多代码被包裹了它。如果我确实需要第三方网格,那么我希望它能够像TStringGrid那样密切合作。

2 个答案:

答案 0 :(得分:6)

简答为否,你不能像素滚动TStringGrid。您可以使用TScrollBox模拟网格。您可以在TScrollBox内放置网格,使网格足够大以适应所有行和列,并关闭其滚动条,但键盘导航等功能将无效。

其他替代方法是在网格模式或TVirtualTree中使用TListView。两者都有你想要的像素滚动。

答案 1 :(得分:0)

我正在寻找类似的东西。不幸的是,你不能用Borland的代码来做,但Lazarus可以做到 Scrolling the TStringGrid pixel by pixel
您可能需要查看他们的代码。