gpt4 book ai didi

delphi - TListView 项目焦点主题

转载 作者:行者123 更新时间:2023-12-03 19:34:50 28 4
gpt4 key购买 nike

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

enter image description here

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

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

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

谢谢。

最佳答案

您需要使用 OnCustomDraw TListView 的事件。在事件处理程序中:

  • 判断该项是否被选中
  • 确定控件是否聚焦
  • 如果项目被选中,则绘制适当的选择矩形(如果未选中控件,则为灰色,如果选中,则为蓝色)
  • 绘制文字
  • 使用 TImageList.Draw 从图像列表中绘制图像

  • 有一些方法可以做这些事情,例如 DrawText 和 FillRect。

    请注意,您 可以如果您愿意,请使用 TListBox 而不是 TListView。您表示您需要列表中项目的 Data 属性,我假设将它们绑定(bind)到您的实际模型对象。您可以使用 TStrings.Objects 对支持 TStrings 的任何东西(例如 TListBox.Items)执行此操作。 .

    关于delphi - TListView 项目焦点主题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7132781/

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