Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
prog:lazarus:components:tvirtualtreeview:node_affichage [13/03/2023 18:26]
thierry
prog:lazarus:components:tvirtualtreeview:node_affichage [13/03/2023 18:28] (Version actuelle)
thierry [Sources et Ressources]
Ligne 1: Ligne 1:
 ====== Affichage d'un Node ====== ====== Affichage d'un Node ======
-==== Affichage d'un Noeud ==== + 
-=== Affichage du texte du noeud ===+===== Affichage du texte du noeud =====
 Lors du dessin du composant, le TVirtualTree se sert de l'​evenement ''​OnGetText''​ pour recuperer le texte a afficher. Lors du dessin du composant, le TVirtualTree se sert de l'​evenement ''​OnGetText''​ pour recuperer le texte a afficher.
 <code delphi> <code delphi>
Ligne 18: Ligne 18:
 end; end;
 </​code>​ </​code>​
-=== Affichage des images/​icones ===+===== Affichage des images/​icones ​=====
 On peut mettre deux images avant le texte du noeud. On peut mettre deux images avant le texte du noeud.
   - L'​image "​Normale",​ dont le ''​TImageList''​ sera stocké dans la property ''​images''​ et la largeur définie dans la propety ''​imagesWidth''​.   - L'​image "​Normale",​ dont le ''​TImageList''​ sera stocké dans la property ''​images''​ et la largeur définie dans la propety ''​imagesWidth''​.
Ligne 51: Ligne 51:
  
  
- +====== Sources et Ressources ======
- +
-==== Modifications ==== +
-=== BeginUpdate / EndUpdate === +
- +
-Lorsque l'on met a jour un VST, il est bon pour l'​affichage et la rapidité d'​entourer ces mises a jour par un ''​BeginUpdate''​ et un ''​EndUpdate''​. +
-<code delphi>​ +
-   ​VST.BeginUpdate;​ +
-   try +
-     ... +
-   ​finally +
-     ​VST.EndUpdate;​ +
-   ​end; ​       +
-</​code>​ +
-==== Déstruction du VST ==== +
-=== OnFreeNode === +
-<note note>​J'​ai eu un pb de MemoryLeak avec un VST que j'ai résolu de la façon suivante</​note>​ +
-<code delphi>​ +
-procedure TForm1.VSTMainFreeNode(Sender:​ TBaseVirtualTree;​ Node: PVirtualNode);​ +
-var +
-   Data: PTreeData;​ +
-begin +
-   Data := VSTMain.GetNodeData(Node);​ +
-   ​Finalize(Data^);​ +
-end; +
-</​code>​ +
-On en parle ici :​[[https://​www.remkoweijnen.nl/​blog/​2010/​06/​09/​memory-leaks-when-using-virtual-treeview-component/​]] +
- +
-Plus d'​infos sur ''​Finalize()''​ : [[https://​www.freepascal.org/​docs-html/​rtl/​system/​finalize.html]] +
- +
-On voit aussi... +
-<code delphi>​ +
-procedure TForm1.VSTMainFreeNode(Sender:​ TBaseVirtualTree;​ Node: PVirtualNode);​ +
-var +
-   Data: PTreeData;​ +
-begin +
-   Data := VSTMain.GetNodeData(Node);​ +
-   ​Data^.Text:​='';​ +
-   ​Data^.URL:​='';​ +
-end; +
-</​code>​ +
- +
- +
- +
- +
-===== Sources et Ressources ===== +
-  * [[https://​jlelong.developpez.com/​articles/​virtualtreeview/​]] +
-  * [[https://​documentation.help/​VirtualTreeview/​$Main.html]] +
-  * [[https://​wiki.freepascal.org/​VirtualTreeview_Example_for_Lazarus/​fr]] +