相关疑难解决方法(0)

如何摆脱TListBox垂直滚动限制?

使用TListBox虚拟模式实现日志查看器.

它工作正常(对于我写的所有代码),按预期显示内容(我甚至轻松添加了一个水平滚动条),但我想我已经达到了垂直滚动条的某种限制.

也就是说,当我从顶部向底部滚动垂直条时,它不会将内容滚动到列表的末尾,而只会滚动到某个限制.

你知道有没有摆脱这个限制的可能性?我试过SetScrollInfo,但它没有工作,因为限制听起来不在滚动条中,而是在TListBox自身中.

我知道创建专用的解决方案TCustomControl:在这种情况下,SetScrollInfo将按预期工作.但有人知道仍然使用的解决方案/技巧TListBox吗?

编辑:说清楚 - 我不要求(第三方)组件解决方案,但要知道是否有一些低级GDI消息要发送到标准TListBox以覆盖此限制.如果没有,我将转到专用TCustomControl解决方案.

这是使用TSCROLLINFO的代码:

procedure ScrollVertHuge(Handle: HWND; count: integer);
var Scroll: TSCROLLINFO;
begin
  Scroll.cbSize:= sizeof(Scroll);
  Scroll.fMask := SIF_DISABLENOSCROLL or SIF_RANGE;
  Scroll.nMin := 0;
  Scroll.nMax := count;
  SetScrollInfo(Handle,SB_VERT,Scroll,false);
end;
Run Code Online (Sandbox Code Playgroud)

要精确地解决这个问题:添加和绘制两个工作当然(我的工具按预期工作),但不起作用的是垂直滚动条拖动.我重命名了问题的标题,并删除了令人困惑的已弃用的MSDN文章.

delphi tlistbox

7
推荐指数
1
解决办法
2650
查看次数

标签 统计

delphi ×1

tlistbox ×1