<?xml version="1.0" encoding="UTF-8"?>
<!-- generator="FeedCreator 1.8" -->
<?xml-stylesheet href="http://wiki.techtic.pro/lib/exe/css.php?s=feed" type="text/css"?>
<rdf:RDF
    xmlns="http://purl.org/rss/1.0/"
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
    xmlns:dc="http://purl.org/dc/elements/1.1/">
    <channel rdf:about="http://wiki.techtic.pro/feed.php">
        <title>TechTIC prog:lazarus:components:tvirtualtreeview</title>
        <description></description>
        <link>http://wiki.techtic.pro/</link>
        <image rdf:resource="http://wiki.techtic.pro/lib/exe/fetch.php?media=favicon.ico" />
       <dc:date>2026-05-09T17:33:30+0200</dc:date>
        <items>
            <rdf:Seq>
                <rdf:li rdf:resource="http://wiki.techtic.pro/doku.php?id=prog:lazarus:components:tvirtualtreeview:base&amp;rev=1678729929&amp;do=diff"/>
                <rdf:li rdf:resource="http://wiki.techtic.pro/doku.php?id=prog:lazarus:components:tvirtualtreeview:bonnespratiques&amp;rev=1678728700&amp;do=diff"/>
                <rdf:li rdf:resource="http://wiki.techtic.pro/doku.php?id=prog:lazarus:components:tvirtualtreeview:node_affichage&amp;rev=1678728489&amp;do=diff"/>
                <rdf:li rdf:resource="http://wiki.techtic.pro/doku.php?id=prog:lazarus:components:tvirtualtreeview:scantree&amp;rev=1678543785&amp;do=diff"/>
                <rdf:li rdf:resource="http://wiki.techtic.pro/doku.php?id=prog:lazarus:components:tvirtualtreeview:selection&amp;rev=1683467152&amp;do=diff"/>
                <rdf:li rdf:resource="http://wiki.techtic.pro/doku.php?id=prog:lazarus:components:tvirtualtreeview:tvirtualtreeview&amp;rev=1683465153&amp;do=diff"/>
            </rdf:Seq>
        </items>
    </channel>
    <image rdf:about="http://wiki.techtic.pro/lib/exe/fetch.php?media=favicon.ico">
        <title>TechTIC</title>
        <link>http://wiki.techtic.pro/</link>
        <url>http://wiki.techtic.pro/lib/exe/fetch.php?media=favicon.ico</url>
    </image>
    <item rdf:about="http://wiki.techtic.pro/doku.php?id=prog:lazarus:components:tvirtualtreeview:base&amp;rev=1678729929&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-03-13T18:52:09+0200</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Actions de BASE</title>
        <link>http://wiki.techtic.pro/doku.php?id=prog:lazarus:components:tvirtualtreeview:base&amp;rev=1678729929&amp;do=diff</link>
        <description>Actions de BASE

Avant toute utilisation d'un VST on doit faire :

	*  Définir les données a afficher.
	*  Initialiser le NodeDataSize avec la taille des données à afficher.
	*  Définir les Columns à afficher.
	*  Définir OnGetText pour pouvoir afficher le texte du Node.</description>
    </item>
    <item rdf:about="http://wiki.techtic.pro/doku.php?id=prog:lazarus:components:tvirtualtreeview:bonnespratiques&amp;rev=1678728700&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-03-13T18:31:40+0200</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Les Bonnes Pratiques</title>
        <link>http://wiki.techtic.pro/doku.php?id=prog:lazarus:components:tvirtualtreeview:bonnespratiques&amp;rev=1678728700&amp;do=diff</link>
        <description>Les Bonnes Pratiques

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.


   VST.BeginUpdate;
   try
     ...
   finally
     VST.EndUpdate;
   end;</description>
    </item>
    <item rdf:about="http://wiki.techtic.pro/doku.php?id=prog:lazarus:components:tvirtualtreeview:node_affichage&amp;rev=1678728489&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-03-13T18:28:09+0200</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Affichage d'un Node</title>
        <link>http://wiki.techtic.pro/doku.php?id=prog:lazarus:components:tvirtualtreeview:node_affichage&amp;rev=1678728489&amp;do=diff</link>
        <description>Affichage d'un Node

Affichage du texte du noeud

Lors du dessin du composant, le TVirtualTree se sert de l'evenement OnGetText pour recuperer le texte a afficher.


procedure TForm1.VSTMainGetText(Sender: TBaseVirtualTree; Node: PVirtualNode;
   Column: TColumnIndex; TextType: TVSTTextType; var CellText: String);
var
   pData: PTreeData;
begin
   pData := VST.GetNodeData(Node);
   case Column of
      0: CellText:= IntToStr(pData^.id);
      1: CellText:= IntToStr(pData^.Flags);
      2: CellTe…</description>
    </item>
    <item rdf:about="http://wiki.techtic.pro/doku.php?id=prog:lazarus:components:tvirtualtreeview:scantree&amp;rev=1678543785&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-03-11T15:09:45+0200</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Parcourir les noeud d'un Virtual Tree View</title>
        <link>http://wiki.techtic.pro/doku.php?id=prog:lazarus:components:tvirtualtreeview:scantree&amp;rev=1678543785&amp;do=diff</link>
        <description>Parcourir les noeud d'un Virtual Tree View

Parcourir un méme niveau


var
   Data: PTreeData;
   Node: PVirtualNode;
begin
      Node := VST.GetFirst;
      while Assigned(Node) do
      begin
         Data := VST.GetNodeData(Node);
        Node := VST.GetNextSibling(Node);
      end;
end;</description>
    </item>
    <item rdf:about="http://wiki.techtic.pro/doku.php?id=prog:lazarus:components:tvirtualtreeview:selection&amp;rev=1683467152&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-05-07T15:45:52+0200</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Selection</title>
        <link>http://wiki.techtic.pro/doku.php?id=prog:lazarus:components:tvirtualtreeview:selection&amp;rev=1683467152&amp;do=diff</link>
        <description>Selection

Evenements

Pour savoir si la sélection a changé, on peut utiliser l'event OnFocusChanged

Récuperer la séléction

GetFirstSelected


function TForm1.GetSelectedMarker: TMarker;
var
   pNode: PVirtualNode;
   pData: PVSTMarkData;
begin
   pNode := VSTMark.GetFirstSelected;
   if assigned(pNode) then
   begin
      pData  := VSTMark.GetNodeData(pNode);
      Result := pData^.Marker;
   end else
      Result := nil;
end;</description>
    </item>
    <item rdf:about="http://wiki.techtic.pro/doku.php?id=prog:lazarus:components:tvirtualtreeview:tvirtualtreeview&amp;rev=1683465153&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-05-07T15:12:33+0200</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Virtual Tree View</title>
        <link>http://wiki.techtic.pro/doku.php?id=prog:lazarus:components:tvirtualtreeview:tvirtualtreeview&amp;rev=1683465153&amp;do=diff</link>
        <description>Virtual Tree View

Fonctionnement

Les TVirtualTrees contiennent un ensemble de Node (de type PVirtualNode).

Chaque Node contient un membre Data TVirtualNode.Data (Data: record end;)

Ce Data contient la donnée a gérer pour ce nœud.

En general la donnée est un record qui peut contenir n'importe quoi , par exemple</description>
    </item>
</rdf:RDF>
