【问题标题】:ListView Accessory item display issueListView 附件项显示问题
【发布时间】:2017-12-11 08:17:58
【问题描述】:

我正在使用一个简单的过程来更新列表视图项 (DynamicAppearance),但是有一个问题。 我需要根据提供的值在运行时显示(选中)/或不显示列表视图项(TAccessoryObjectAppearance,AccessoryType:复选标记)。 应该是:

但我明白了:

在设计时,我将项目设置为“不可见”。

这是不起作用的代码:

procedure UpdateList(lv: TListView);
var
  Litem: TListViewItem;
  iName: TListItemText;
  iCheck: TListItemAccessory;
begin
  FDQuery.Open('SELECT Name, Value FROM tbl_values');

  lv.Items.Clear;
  lv.BeginUpdate;

  while not FDQuery.Eof do
  begin
    Litem := lv.Items.Add;

    iName      := Litem.Objects.FindObjectT<TListItemText>('Name');
    iName.Text := FDQuery.FieldValues['Name'];

    iCheck     := LItem.Objects.FindObjectT<TListItemAccessory>('Check');
    if FDQuery.FieldValues['Value'] > 0 then
      iCheck.Visible:= True
    else
      iCheck.Visible := False;

    FDQuery.Next;
  end;

  lv.EndUpdate;
end;

此过程在 form.show 事件上运行。

然后我运行另一个过程,它更改了数据库表中的一些值,并再次运行相同的过程 (UpdateList) 以更新列表视图项的值。现在复选标记已正确显示:

我做错了什么?

德尔福 10.2.1

【问题讨论】:

  • 什么意思,当你说它不起作用?我们如何重现这个问题?请提供Minimal, Complete and Verifiable Example
  • 我已经用图片更新了帖子。
  • 谢谢,但您可以用一句话解释实际问题。您仍然没有回答问题:我们如何重现该问题?您需要提供我要求的 MCVE。人们花时间和精力去猜测你的设置,试图重现你的问题是没有意义的。您是否在调试器中单步执行代码以验证实际的数据库数据?
  • 在调试时,'FDQuery.FieldValues' 在初始启动时保持什么值?
  • 如果没有minimal reproducible example(以及对 FDQuery 提取的数据的深入了解),很难从根本上解决您的问题,但您可以使用以下代码片段来设置/删除复选标记:设置复选标记:Liitem.ItemData.Accessory:=TListBoxItemData.TAccessory.aCheckmark;使用以下代码取消选中项目:LItem.ItemData.Accessory:=TListBoxItemData.TAccessory.aNone;希望这会有所帮助...

标签: listview delphi firemonkey


【解决方案1】:

这就是我所做的:

while not FDQuery.Eof do
  begin
    Litem := lv.Items.Add;
    
    **ListView1.ApplyStyleLookup;** //Add this line

    iName      := Litem.Objects.FindObjectT<TListItemText>('Name');
    iName.Text := FDQuery.FieldValues['Name'];

    iCheck     := LItem.Objects.FindObjectT<TListItemAccessory>('Check');
    if FDQuery.FieldValues['Value'] > 0 then
      iCheck.Visible:= True
    else
      iCheck.Visible := False;

    FDQuery.Next;
  end;

【讨论】:

    猜你喜欢
    • 2013-09-30
    • 1970-01-01
    • 2019-04-28
    • 1970-01-01
    • 1970-01-01
    • 2013-04-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多