I fill programmatically DynamicAppearance TListview. There I have a TextButton, which sometimes I want to set Visible:=false.
li := ListView.Items.Add;
I tried these solutions, but neither works correctly:
li.Objects.ObjectByName('ButtonSelect').Visible := false;
li.View.FindDrawable('ButtonSelect').Visible := false;
I also tried to destroy or free this object, but I get errors.
Additionally sometimes it works, but just on the second buildup, but when I resize the Form, the ListView also forgets the visibility setup.
Do you have working solutions for this problem?
Thank you!
When using a Dynamic Listview item and you want to change the appearance of objects inside the items you need to do it under the OnUpdateObjects event of the listview.
Like so:
procedure TForm2.lv1UpdateObjects(const Sender: TObject;
const AItem: TListViewItem);
begin
if SomeCondition then // SomeCondition is an example
AItem.Objects.FindObjectT<TListItemTextButton>('ButtonSelect').Visible := False;
end;