gpt4 book ai didi

delphi - Delphi XE 中有带标题的虚拟列表框吗?

转载 作者:行者123 更新时间:2023-12-02 05:53:40 24 4
gpt4 key购买 nike

抱歉,这个背景有点复杂...我正在将 D5 项目转换为 DXE...它有一个包含数千个项目的列表框。在搜索框中每次击键都会对这些项目进行完整的渐进式文本搜索。在 D5(虚拟列表之前)中,我必须使用 LMD 列表框(因为列表框中有几列带有标题)、一个单独的滚动条和一个记录数组来创建自己的虚拟列表框。当用户浏览搜索结果或修改搜索时,列表框将被填充。这表现得很好,但由于现在虚拟列表框是 Delphi 原生的,我打算将自定义列表框转换为原生列表框,但我找不到具有虚拟功能的标题的列表框组件。帮助?

是否有可用的组件具有虚拟列表和标题/列?

我忘了提及:我知道软 gem VirtualTreeView组件 - 这些都非常好,可能是我将要使用的,但是... DXE 中有没有一种方法可以在没有第 3 方实用程序的情况下完成此任务?我担心我在 DXE 中遗漏了一些明显的东西,因为我只使用了大约一个月。

最佳答案

TListView 是 Windows ListView 公共(public)控件的薄包装。以报告 View 样式的虚拟模式运行它,以实现我相信您所要求的目标。

<小时/>

为了设置虚拟 ListView ,您需要将 OwnerData 设置为 True 并提供 OnData 事件处理程序。

procedure TVirtualListViewForm.FormCreate(Sender: TObject);
begin
ListView1.ViewStyle := vsReport;
ListView1.Columns.Add.Caption := 'Column1';
ListView1.Columns.Add.Caption := 'Column2';
ListView1.OwnerData := True;
ListView1.OnData := ListViewData;
ListView1.Items.Count := 42;
end;

procedure TVirtualListViewForm.ListViewData(Sender: TObject; Item: TListItem);
begin
Item.Caption := Format('Column 0, index %d', [Item.Index]);
Item.SubItems.Add(Format('Column 1, index %d', [Item.Index]));
end;

根据您的需要,可能需要 OnDataFind 来实现渐进式文本搜索。

关于delphi - Delphi XE 中有带标题的虚拟列表框吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6673641/

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