Bonjour,

J'utilise de plus en plus les TListView et la création de nouveau Appearance.

Je cherche à faire un item avec un bouton more qui permet de déployer (rendre visible) un texte supplémentaire dans l'item de la listView

J'ai créé un nouvel objet Appearance avec bouton More et un TTextObjectAppearance (MoreText) pour le contenu texte du more.

Par défaut cet objet n'est pas visible et si on clique sur le bouton more je voudrais que l'objet texte devienne visible.

J'ai bien le bouton, j'ai l'événement du clic sur le bouton mais je n'arrive pas à rendre l'objet MoreText visible.
Je ne trouve pas à quel endroit je peux accéder à cet objet.

J'ai le clic sur le bouton via l'événement : (et je peux changer le texte du bouton)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
 
procedure TFrameShowOperations.lbEventsItemClickEx(const Sender: TObject;
  ItemIndex: Integer; const LocalClickPos: TPointF;
  const ItemObject: TListItemDrawable);
begin
  //...
      if (ItemObject.Name = 'MoreButton') then
         begin
           item := lvEvents.Items[itemindex];
           ItemObject.BeginUpdate;
           try
           if tlistitemtextbutton(ItemObject).text = 'ReadMore' then
              tlistitemtextbutton(ItemObject).text := 'ReadLess'
            else
              tlistitemtextbutton(ItemObject).text := 'ReadMore';
           finally
             ItemObject.EndUpdate;
           end;
  //...
end;
A ce niveau il n'est pas possible d'obtenir l'objet MemoText

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
        item := lvEvents.Items[itemindex];
        Item.View.FindDrawable('MoreText') // vaut nil
L'événement procedure TFrameShowOperations.lvEventsUpdateObjects(const Sender: TObject; const AItem: TListViewItem); n'est pas appelé.

Peut-être y a t il un défaut de compréhension du fonctionnement des tlisview et appearance ?

Une idée ou une piste de recherche .

Delphi 10.2
fmx

Merci d'avance