delphi - 有没有办法确定滚动条在 TDBGrid 上是否可见

标签 delphi vcl delphi-10.1-berlin tdbgrid

我想在 TDBGrid 的右下角显示一些东西,但我不想覆盖滚动条。

有确定滚动条是否可见的好方法吗? (以及它们的大小)

最佳答案

可能最好的方法是使用 ClientRect属性,它以自己的坐标给出控件的客户矩形(这意味着 LeftTop 始终为 0)。 “客户矩形”是控件中不是边框和滚动条的部分。

为了比较,BoundsRect属性是父窗口坐标系中窗口的完整矩形。

例如,

Screenshot of a control with a scrollbar, and its BoundsRect and ClientRect values.

pnSnowman.SetBounds(
  DBGrid1.Left + DBGrid1.ClientWidth - pnSnowman.Width - 8,
  DBGrid1.Top + DBGrid1.ClientHeight - pnSnowman.Height - 8,
  pnSnowman.Width,
  pnSnowman.Height
);

结果

Control with snowman in its bottom-right corner.

关于delphi - 有没有办法确定滚动条在 TDBGrid 上是否可见,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66323809/

相关文章:

sql - Delphi中的SQLQuery脚本寻找特定日期

delphi - 是否可以初始化函数引用的常量数组?

delphi - delphi中如何知道dll的调用者应用

delphi - 我可以使用默认的 WriteComponent 操作将 Delphi TPersistent 序列化为 TComponent 的字段吗?

windows - 特定应用程序的文件权限

Delphi 2009 - 通过双击 SysMenu 恢复窗口时进行处理吗?

delphi - 如何在 TcxComboBox 中抑制鼠标滚轮

c++ - 在 embarcadero/RAD studio 中跨 .dfm 文件使用常量

c++builder - C++ : How do I make a VCL component reference itself?

json - Delphi FDQuery 转 Json