gpt4 book ai didi

delphi - 如何以编程方式滚动 TTreeView?

转载 作者:行者123 更新时间:2023-12-03 15:11:01 26 4
gpt4 key购买 nike

A.创建一个 Delphi VCL Forms 应用程序。

B.在窗体上放置一个 TTreeView,将其命名为 tvTest 并用项目填充它并设置 Treeview 的大小,以便滚动条在 TreeView 上可见,例如:

enter image description here

C.在表单上放置一个按钮,并在其单击处理程序中编写以下代码:

  procedure TForm1.btnScrollClick(Sender: TObject);
begin
tvTest.ScrollBy(tvTest.Width, 0);
end;

D.现在运行该程序并单击按钮。据说水平滚动条应该从左向右滚动。但什么也没发生。为什么?

那么如何使滚动条(当然还有滚动条的内容)从左到右、从右到左、向下或向上滚动?

Delphi 10.1 柏林更新 2
Windows 7 x64 SP1

编辑:当我使用此代码时(类似于萨米的建议):

tvTest.ScrollBy(-3, -3);

...我得到了这件现代艺术作品:

enter image description here

最佳答案

要滚动 TreeView,请将其发送(或执行)WM_VSCROLL和/或 WM_HSCROLL消息。

tvTest.Perform(WM_HSCROLL, MakeWParam(SB_LINERIGHT, 0), 0);

tvTest.Perform(WM_VSCROLL, MakeWParam(SB_LINEDOWN, 0), 0);

参数请参见消息对应文档。

ScrollByScrollWindow 的 VCL 包装器API,它改变控件的内容。这是绘制滚动控件的客户端部分的快捷方式,应另外绘制显示的(空)部分。它通常由控件的内部实现使用。不是您要寻找的内容。

关于delphi - 如何以编程方式滚动 TTreeView?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40874900/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com