如何使用DynamicAppearance在TListView中添加项目?

7

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


搞定了: 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; - shariful
3
欢迎来到 Stack Overflow。恭喜您解决了问题。请在下面的“回答”部分中添加您的解决方案,以便未来的访问者清楚地知道该问题已被解决。这里的评论应被视为短暂的。 - Rob Kennedy
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; 

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;

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;

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接