我有一个从TScrollBox派生的自定义控件.在运行时,我需要知道天气垂直滚动条是否可见.如果我询问Visible属性,它总是返回true,无论滚动条是否可见!
function TMyScrollPanel.ScrollVisible: boolean;
begin
Result:= Self.VertScrollBar.Visible; <----------- always true
end;
Run Code Online (Sandbox Code Playgroud)
但是,这可以正常工作:
function VertScrollBarVisible(WindowHandle: THandle): Boolean;
begin
Result:= (GetWindowlong(WindowHandle, GWL_STYLE) AND WS_VSCROLL) <> 0
end;
Run Code Online (Sandbox Code Playgroud)
第一个功能有什么问题?
读取滚动条Visible属性仅检索VCL控件状态.该属性不会从实际滚动条窗口中检索当前状态.请改用该IsScrollBarVisible属性.
请改用该IsScrollBarVisible方法来检查滚动条是否可见,因为可以滚动可滚动窗口.
读取Visible属性仅检索其可见性设置的缓存值(可以是否可见).对于可滚动窗口,该属性不会从实际窗口中检索当前状态.
| 归档时间: |
|
| 查看次数: |
554 次 |
| 最近记录: |