【问题标题】:How to add items to TListView with DynamicAppearance?如何使用 DynamicAppearance 将项目添加到 TListView?
【发布时间】:2016-09-18 06:26:27
【问题描述】:

如何在运行时将项目添加到 DynamicAppearance Listview?在设计模式下,我创建了我想要的 ListView 布局。我添加了 3 个 TTextObjectAppearance。如何动态设置这 3 个 TTextObjectAppearance 文本?

【问题讨论】:

  • 得到它的工作: var list : TListViewItem; ldes,lOrder,lLegal:TListItemText;开始列表:= ListView1.Items.Add; ldes := list.Objects.FindObjectT('Description'); lOrder := list.Objects.FindObjectT('OrderId'); lLegal := list.Objects.FindObjectT('LegalCode'); ldes.Text := 'Mouri'; lOrder.Text := '爱'; lLegal.Text := 'You' end;
  • 欢迎来到 Stack Overflow。恭喜您解决了您的问题。请在下面的 answer 部分中添加您的解决方案,以便将来的访问者清楚该问题已解决。这里的评论应该被视为短暂的。

标签: listview delphi firemonkey delphi-10.1-berlin


【解决方案1】:

我花时间格式化原始发布者在原始问题的 cmets 中发布的答案。

var list : TListViewItem; 
    ldes, lOrder, lLegal : TListItemText; 
begin 
   list := ListView1.Items.Add; 
   ldes := list.Objects.FindObjectT<TListItemText>('Description'); 
   lOrder := list.Objects.FindObjectT<TListItemText>('OrderId'); 
   lLegal := list.Objects.FindObjectT<TListItemText>('LegalCode'); 
   ldes.Text := 'Mouri'; 
   lOrder.Text := 'Love'; 
   lLegal.Text := 'You' 
end; 

【讨论】:

    【解决方案2】:

    由于某种原因,我无法更改 TTextObjectAppearance 项目的文本颜色。我在绑定/设计(动态外观)列表视图上所做的如下:

    procedure TReportsForm.lvwReportsUpdateObjects(const Sender: TObject;
      const AItem: TListViewItem);
    
    var drw: TListItemDrawable;
        cpt: string;
    
    begin
        drw:=AItem.Objects.FindDrawable('Concept');
        if (drw <> nil) then begin
            cpt := AItem.Data['Concept'].AsString;
            if (cpt = 'BAD') then
              (drw as TListItemText).TextColor := TAlphaColorRec.Indianred
            else
              (drw as TListItemText).TextColor := TAlphaColorRec.Cadetblue
        end;
    end;
    

    【讨论】:

      【解决方案3】:

      另一种更改文本的方法是:

      for i := 0 to Listview1.Itemcount-1 do begin
      
        Listview1.Items.AppearanceItem[i].Data['Description'] := 'Mouri';
        Listview1.Items.AppearanceItem[i].Data['OrderID'] := 'loves';
        Listview1.Items.AppearanceItem[i].Data['LegalCode'] := 'YOU!';
      
      end;
      

      【讨论】:

        猜你喜欢
        • 2013-06-18
        • 1970-01-01
        • 2020-12-18
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-01-05
        • 2019-04-11
        • 1970-01-01
        相关资源
        最近更新 更多