如何在运行时向DynamicAppearance列表视图中添加项目?在设计模式下,我创建了我想要的ListView的布局。我添加了3个TTextObjectAppearance。如何动态设置这三个TTextObjectAppearance的文本?
如何在运行时向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;
另一种改变文本的方式是:
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;
由于某些原因,我无法通过更改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;