【发布时间】:2015-10-07 17:47:16
【问题描述】:
在 Delphi 中,在许多 TWinControl 后代中,例如在我的确切情况下,TSynEdit 控件,我将如何读取水平和垂直滚动条的位置?
我一直在寻找我的特定控件的源代码和 TWinControl 的基类文档,但无法弄清楚。
是否有通用的 VCL 特定方法来执行此操作,或者我应该通过 Win32 API 调用来执行此操作?
【问题讨论】:
-
您是否尝试过使用GetScrollBarInfo 函数?
-
是的,对我不起作用,无论是 OBJID_CLIENT 还是 OBJID_HSCROLL,但也许我做错了。
if GetScrollBarInfo(SynEditCtrl.Handle, Integer(OBJID_CLIENT), SB) then ...返回 false。 -
我可以使用
SynEditCtrl.LeftChar非常接近,如果水平滚动位置一直在左侧,则为 0。 -
那一定是正确的,RRUZ。在我的确切情况下,一定有些奇怪。也许你不能在 WM_PAINT 的上下文中调用它。我认为如果我将其更改为询问“任何 TWinControl”,这将是一个更好的问题,因为我在这里看不到任何此类问题。你的回答很好。你可以发布那个。我在 SO 上看不到这个问题的任何重复。
标签: delphi delphi-xe8 synedit