问题标签 [tlistview]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
767 浏览

delphi - 在添加到 Tlistview 之前检查 TListItem 是否重复

我有一个列表records,我想总结成一个TListView

记录结构如下

记录中可能有 SourceTable / TargetTable 的多个实例,Source/Target Field 的单个实例

我想创建一个TListViewin vsReport 样式来总结每个 SourceTable\TargetTable 对。

理想情况下,我想做以下事情:

即创建一个独立的TListItem,检查它不存在,然后将它添加到我的TListView。然而,它在分配时中断LI.Caption- 基本上没有什么可分配的。我怀疑至少部分问题是(nil)

TListItem 的正常创建将是使用LI := lvMigration.Items.Add;,但这对我的用例没有帮助。我似乎找不到任何完成上述操作的文档。

0 投票
1 回答
1788 浏览

listview - TListView 在项目标题上添加 600 多个字符

我需要在 Item.Caption 和 SubItems 上添加 600 多个(或更多)字符,但我看到 TListView 如果文本长度超过 N 个字符,则会完全剪切文本。

我试过这个:

然后我启用了 ListView1.OwnerDraw := True;

从下图中可以看出,Column1 中的文本越过了 Column2:

在此处输入图像描述

任何人都可以帮助我解决这个问题吗?

0 投票
2 回答
15284 浏览

delphi - Delphi - 获取和设置 ListView 的滚动条位置

这似乎是一个愚蠢而简单的问题,但是,我一直无法找到令人满意的答案。基本上,我有一个带有数据的TListview (style = vsReport)。有时,我必须更新它,因此,我必须清除列表视图并用更新的数据再次填充它。

但是,当我这样做时,滚动条位置被重置为 0。我希望能够在清除之前获得滚动条位置并将其设置回原来的位置。如果更新的数据与旧数据的行数完全相同,我需要滚动条位于与以前完全相同的位置;如果没有,我只需要它或多或少和以前一样在同一个地方。

看起来很容易,对吧?然而,我发现的只是TopItemMakeVisible的黑客或调整。有没有合适的方法来做到这一点?

谢谢!

0 投票
0 回答
77 浏览

delphi - 有没有办法摆脱 TListView 控件中的这个绘画问题?

我在 Windows 7 64 位上使用 XE5 Update 2(所有更新都是最新的)。

我有一个带有简单 TListView 对象的应用程序。

这是一些密码。它只是显示来自 fireac TFDQuery 对象的数据。

如下图所示,当我选择几行然后取消选择它们时,会出现一些重绘问题。如果我将 OwnerData 设置为 false 并使用 lsvReceipts.Items.Add 方法手动将记录添加到列表中,则不会发生。

关于如何摆脱这个的任何想法?根据我在这里看到的其他消息,控件充满了问题。不幸的是,我现在必须使用它。

如果您想知道,我需要一个包含多列的列表,用户可以在其中选择多条记录。我开始使用带有多选选项集的 DBGrid,但是,在使用它一段时间后,选择多行的功能受到限制(例如,SHIFT+Click、SHIFT+PageUp/PageDown 不起作用)。无论如何,我们计划将来升级到 devexpress 网格,但现在我必须坚持使用 vcl vanilla 控件。

谢谢

在此处输入图像描述

0 投票
1 回答
1801 浏览

delphi - TListView SelCount 报告虚拟列表中的项目数错误

我需要根据是否在列表中至少选择了一行来启用或禁用按钮。

以下是重现此问题的代码。该列表使用 OnData 事件填充,它允许选择多行。

我认为我可以使用 OnSelectItem 来检测用户何时更改选择,然后使用 TListView SelCount 函数来检测所选行数。

问题是当用户选择多行时 SelCount 返回 0。如果手动填充列表(即不是通过 OnData 事件),这可以正常工作。

有任何想法吗?

谢谢

更新:使用 OnChange 事件似乎可以解决问题。理解为什么 SelCount 在选择多行时返回 0(从 SelectItem 事件中)仍然会很有趣。

另一个更新:我发布了一个测试项目:https ://dl.dropboxusercontent.com/u/35370420/TestListView2.zip以及截图:

在此处输入图像描述

要重现此问题,请运行应用程序,选择 Item1,然后 SHIFT+单击 Item2。该按钮被禁用。我的意图是只要在列表中至少选择了一项,就可以动态启用该按钮。如果没有选定的项目,则该按钮被禁用。

PAS 文件:

形式:

0 投票
1 回答
918 浏览

delphi - 清除和重新加载组和项目后,TListView 组和项目不出现

德尔福 XE4 更新 1 和 Windows 8。

当我将组和项目添加到列表视图时,它们会正确显示。然后,当我清除项目和组并再次添加它们时,什么也没有出现。当然这不是预期的行为?

来自 DFM:

编码:

我第一次单击该按钮时,项目会出现并且它们被分组。第二次,列表视图为空白。如果我注释掉清除组的行,那么它可以工作,但是组的数量,所有这些都未使用,只有一个,每次都会增加 1。

0 投票
2 回答
900 浏览

delphi - 使用资源管理器样式时,TListView 不隐藏选择

In Delphi XE4 if you set HideSelection to true and use an explorer style TListView (when the selection rectangle has a gradient background like Windows Explorer) clicking on another control will not hide the selection rectangle. 它会呆在那里,就好像什么都没发生一样——当 Listview 没有焦点时,它甚至不会像往常一样变成灰色矩形。

这是 Delphi 错误还是 MS Listview 控件的“功能”?是否有任何已知的解决方法或修复方法?真的很烦...

0 投票
1 回答
2376 浏览

delphi - 如何在项目单击时禁用 TListView 编辑?

当我单击 TListView 选定项但不完全禁用它时,我想禁用进入编辑模式(设置属性 ReadOnly=True)。我希望仍然能够通过其他方法对其进行编辑。有可能的 ?

0 投票
0 回答
343 浏览

android - Delphi XE6 mobile:绑定TObject属性时如何获取分配给TListviewItem的TObject

我有以下内容:

我使用带有 TAdapterBindSource 和 TDataGeneratorAdapter 的 TMyList 将 TMyList 绑定到 TListview。好的,项目已正确显示。

当我在 TListview 的项目中单击时,在 OnItemClick 中,我需要知道 TListViewItem 分配了哪个 TMyObject 实例。

使用 TListViewItem.Index 不起作用,因为我的列表视图有标题项,然后索引值不对应。

单击列表视图项时,我需要获取 TMyObject 的属性值。

谢谢。

0 投票
0 回答
108 浏览

json - tListView、XE6、BaaS:如何在嵌套对象中获取字符串

我是 Delphi XE6、VisualBinding 和 BaaS-Providers 的新手。我很高兴看到将 JSON 响应从 tBackendQuery 转换为列表视图是多么容易。我的 BaasStorage 包含一个名为 FilePDF 的列,其中包含一张图片(是的 JPG,必须重命名..)。我在查询中得到的是 Internet 中文件的 URL。如何在单独的变量中获取此 URL?(我的快速而肮脏的解决方案是浏览显示 JSON 响应的备忘录并抓住每“1 +(ix * 15)+ 6”行......

我想显示一个屏幕截图,但我没有足够的声誉......所以这里是 JSON-REspone......

(Sarina Dupont 似乎有一个教程,但链接不起作用......)