7

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

4

3 回答 3

8

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

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; 
于 2016-05-25T11:58:12.777 回答
2

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

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;
于 2020-01-08T14:47:43.077 回答
0

出于某种原因,我无法更改 TTextObjectAppearance 项目的文本颜色。我在绑定/设计(dynamicAppeareance)Listview上所做的如下:

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;
于 2019-03-05T16:55:14.110 回答