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