Bonjour,
j'ai un TListview en mode Icon dans lequel je veux ajouter un nouvel élément,
seulement j'observe des comportements que je ne comprends pas :
Dans ce cas-ci, RAS l'élément est bien ajouté au Listview et le libellé 'Test' apparaît bien.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 //CAS1 var item:TListItem; begin item:=Listview.items.add; item.Caption:='Test'; end;
Dans ce cas-ci l'élément et son sous élément 'sub1', sont bien ajouté au Listview mais le libellé 'Test' n'apparaît pas, est-ce normal ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 //CAS2 var item:TListItem; begin item:=TListItem.Create(ListView.Items); item.Caption:='Test'; item.subitems.add('sub1'); ListView.items.addItem(item); end;
Si je pousse un peu plus loin en ajoutant un gestionnaire CustomDrawItem que je debuggue, je m'aperçois que dans le CAS2 :
- Item.caption n'est pas vide , malgré qu'il ne soit pas affiché
- Item.caption peut être remplacé par une nouvelle valeur qui là s'affichera
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 procedure TfrmMain.listviewCustomDrawItem(Sender: TCustomListView; Item: TListItem; State: TCustomDrawState; var DefaultDraw: Boolean); var str:string; begin //un test en debug m'indique bien que Item.caption est initialisé à 'Test' //comme prévu pourtant le libellé ne s'affiche pas. //si j'affecte à Item.caption une autre valeur que 'Test' alors //celle-ci s'affiche (?) item.Caption:='valeur'; end;
Vous y comprenez quelque chose ?
Etes-vous déjà arrivé à insérer un nouvel élément comme dans le cas 2 mais en ayant l'affichage du libellé de l'élément ?
Partager