如何使用DynamicAppearance向TListView添加项目?

时间:2016-05-20 21:17:44

标签: listview delphi firemonkey delphi-10.1-berlin

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

3 个答案:

答案 0 :(得分:6)

我花时间格式化原始海报原始问题评论中的答案。

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; 

答案 1 :(得分: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;

答案 2 :(得分:0)

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

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;