DB网格上的滚动条 - 寻求明确的方法

时间:2013-05-08 02:18:35

标签: delphi scrollbar tdbgrid tms

我看到很多数据库滚动条问题,但似乎从来没有找到这个问题的明确答案。

没有选项(属性)可以单独或联合添加/隐藏数据库网格滚动条。只需在需要时自动显示。

如果我没有足够的行来滚动,我希望我的列能够填满整个网格。

如果我设计它,那么当在运行时添加垂直滚动条时,也会自动添加水平滚动条(因为我刚刚用垂直滚动条覆盖了最右侧列的右侧部分,我们现在需要一个水平滚动条,看看我在覆盖什么。)

一个选项是设计我的网格,使得右手大小有足够的空间(多少像素?)以容纳垂直滚动,但这是不雅观的,直到有足够的行来触发滚动条(如果有的话) )。

在我看来,最美观的方式是从一个网格开始,网格填充X像素宽的列,并将其宽度增加到X + width of vertical scroll bar(或减少一个/一些的宽度添加新行时,网格列总共为width of vertical scroll bar}个像素会导致显示垂直滚动条。

我错过了什么吗?有没有“正确”的方式来做到这一点,或采用行业标准的方式(我要求“最佳”方式或任何过于主观的方式,所以请不要关闭。我相信很多人需要知道这一点。)

标准TDBgrid中是否有任何内容可以促进这一点?

Bonus:我订阅了TMS组件,所以如果有一种方法可以简单地使用TAdvDbgrid,那对我来说没问题,但是TDBgrid的一般解决方案没问题。< / p>

非主观问题:鉴于此   - 我不想增加TDBgrid的宽度   - 当没有垂直滚动条时,我不希望右边有一个空白栏   - 并且我愿意减小最右列的宽度,以避免在出现垂直滚动条时出现水平滚动条 ......我该怎么做?


[更新] 肯被正确地授予了答案,因为他的解决方案最适合大多数用户。

对于那些已经支付过TMS订阅费用的人,我只是注意到他们的TDbAdvgrid组件有一个ScrollBars属性,当我将它设置为ssVertical时,它就是我想要的。

现在,如果我只想找到一个好的方法来修复标题行,那么它就是唯一的一行......

1 个答案:

答案 0 :(得分:1)

TJvDBGrid(JEDI JVCL的一部分)内置了此功能,并包含源代码。它应该能够做你需要的,或者给你实现你自己的后代所需的细节。