问题标签 [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 投票
1 回答
7260 浏览

delphi - Delphi 2010:在 vsReport ViewStyle 中对 TListView 项目进行分组

首先这可能吗?

我有两个问题 - 第一个问题是在运行时创建时我无法让组出现在 TListView 中。我正在使用以下代码:

第二个是即使我在设计时创建组 - 我可以在表单设计器中看到它们 - 它们在运行时不存在 - 即使在我刷新数据以添加我自己的项目之前......

附加:我已经确认以下答案适用于一个原始项目。但是它在我想使用它的项目中失败了!我已经用调色板中的一个新的 TListView 替换了我的 TListView,但并不高兴。列表视图位于 tpagecontrol

0 投票
4 回答
5029 浏览

delphi - Delphi TListView - 调用“免费”时添加的按钮不会消失

(使用:德尔福 XE)

我正在向 ListView 的每一行添加一个 TButton。在按钮 OnClick 处理程序中是一个 Sender.Free。但是(虽然列表行消失了,因为填充列表视图的数据集已更新),但当按钮应该消失时,它仍保留在列表视图上。我究竟做错了什么?

这是我的代码,显示了按钮的创建,以及要释放它的 OnClick:

(另一方面,我知道在其事件处理程序中销毁组件不是一个好习惯。这有什么问题吗?您能建议另一种删除按钮的方法吗?)

图片:

在此处输入图像描述

0 投票
1 回答
901 浏览

delphi - TListView 项目焦点主题

当使用 TListView 并且主题在应用程序中被禁用时,焦点和选定的项目显示如下:

在此处输入图像描述

注意两个图像中三角形所在的位置。项目的绘制框不会在图标出现的位置绘制。在 TListBox 中,绘制的项目填充整个选定项目。

我如何才能填充所选项目的图标部分,就像处理文本部分一样?

我知道 TListBox 是这样渲染的,但我需要对 Data 属性使用 TListView,TListView 也可以通过 TImageList 更好地处理图标。

谢谢。

0 投票
1 回答
1679 浏览

delphi - 如何更改 TTNTListView 中列中的文本颜色?

我在 Delphi 7 中使用 TTNTListView。它设置为 vsReport。在 OnCustomDrawSubItem 事件中,我使用以下代码:

问题是所有 >= 3 的子项都使用与子项 2 相同的颜色绘制。我检查了 SubItem >= 3 Sender.Canvas.Font.Color 是 clBlack,但它们是用 clRed 和 clGreen 绘制的。如果我的代码有问题,请告诉我如何解决它。如果这是一个错误,也许有人知道解决方法。谢谢你。

0 投票
1 回答
5978 浏览

delphi - TListView:如果添加列,VCL 会丢失列的顺序

我正在尝试在 TListView 中的现有列之间添加一列。因此,我在末尾添加新列并通过将其索引设置为指定值来移动它。这有效,直到添加另一个新列。

我所做的:在最后一个位置(Columns.Add)添加列,并在最后一个位置(Subitems.Add)添加子项。之后,我通过将列的索引设置到正确的位置来移动列。只要它只是添加一列,它就可以正常工作。添加第二个新列时,子项会搞砸。第一列的新子项移动到最后一个位置,例如这样:

如果有人可以提供帮助,我将非常高兴!

例如,是否有一个命令或消息我可以发送到 ListView 以便它刷新或保存它和第一个方法一样。

或者这只是 TListViews 列的错误--> 子项处理或 TListColumns ...?

vcl 表单应用程序的示例代码(分配 Form1.OnCreate 事件):

谢谢!


编辑:Sertac Akyuz 建议的修复工作正常,但我不能使用它,因为更改 Delphi 源代码对我的项目没有解决方案。报告错误。

编辑:删除了第一篇文章中无意包含的第二个问题并打开了新问题(请参阅链接问题和问题修订)。

更新报告的错误现在已关闭,与 Delphi XE2 Update 4一样已修复。

0 投票
5 回答
52042 浏览

delphi - 如何在delphi中正确使用Listview?

我的代码如下,它工作正常,但是在编译程序后,我看到所有全名和国家/地区垂直列出,例如:

_________________________________全
名1
国家1 全
名2
国家2 全
名3 国家
3
等等...

但我想要类似的东西:

在此处输入图像描述

0 投票
2 回答
2040 浏览

delphi - 在 TListView 控件中禁用取消选择

我想将 TListView (vsIcon) 用作一种选项卡 - 这样只能像选项卡一样选择一个项目。只选择一项没有问题(禁用多选属性)。问题是单击列表视图中图标和文本之间的空白点时取消选择项目。

这是我到目前为止所尝试的:

上述工作,但有一个问题。当鼠标单击空白区域时,它会取消选择该项目,并且键盘向上/向下箭头不再起作用,尽管该项目看起来仍处于选中状态。如果我忽略键盘,对于鼠标选择它可以正常工作,它会忽略在状态栏中显示“NO”消息的空白区域的点击。

任何想法如何解决这个问题,以便它适用于所有可能的选择方法(键盘、鼠标(任何其他?))。

0 投票
2 回答
362 浏览

delphi - 修复 Delphi 表单中方法声明中的错误

为什么我会收到此错误,我用 listview 替换了 stringgrid,然后将其设置为 viewstyle vsreport 但我收到一个错误,例如 (expected '=' but '(' found) 它在下面的此过程中闪烁

这是我的代码

.

0 投票
1 回答
4439 浏览

delphi - 在 Delphi 中,如何强制 tListView 始终显示选定的行,即使没有聚焦。

tListView 的选定行显示为蓝色,但仅当控件具有焦点时。无论控件是否具有焦点,我都希望始终显示所选行。

0 投票
1 回答
844 浏览

delphi - 如何使用 OwnerData true 在 TListView 中处理默认列自动调整大小

我有一个在虚拟模式下使用的 TListView(在报告模式下)(OwnerData := True)。除了我知道自动自动调整列大小的两种情况外,一切都很好。他们是:

  1. 双击标题列分隔符以自动调整单个列的大小
  2. Ctrl-KeypadPlus 键自动调整所有列的大小。

在虚拟模式下对这些事件的默认处理实际上并不起作用(它似乎在第一行数据上自动调整大小。)我想挂钩该行为并做我自己的列自动调整大小。有谁知道这是怎么做到的吗?或者也许我错过了一些明显的东西?我正在使用德尔福 XE。感谢您的任何建议。