Table des matières

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: CellText:= IntToStr(pData^.Current);
      3: CellText:= IntToStr(pData^.Worst);
   end;
end;

Affichage des images/icones

On peut mettre deux images avant le texte du noeud.

  1. L'image “Normale”, dont le TImageList sera stocké dans la property images et la largeur définie dans la propety imagesWidth.
  2. L'image “State”, dont le TImageList sera stocké dans la property StateImages et la largeur définie dans la propety StateImagesWidth.

Lorsque le VST veux récupérer l'index de l'image à afficher, le paramètre Kind contient l'information du type d'image qu'il souhaite:

Le paramètre Column contient l'index de la colonne pour laquelle il veut l'ImageIndex.

procedure TFrameVSTDisks.VSTGetImageIndex(Sender: TBaseVirtualTree; Node: PVirtualNode; Kind: TVTImageKind; Column: TColumnIndex; var Ghosted: boolean; var ImageIndex: integer);
var
   pData: PTreeData;
begin
   pData      := VST.GetNodeData(Node);
   ImageIndex := -1;
   case Column of
      C_COL_DEVICE: case Kind of
            ikState: ImageIndex  := -1;
            ikNormal,ikSelected: ImageIndex := pData^.Img;
         end;
      C_COL_SMART: case Kind of
            ikState: ImageIndex  := -1;
            ikNormal,ikSelected: ImageIndex := pData^.SmartImg;
         end;
   end;
end;

Sources et Ressources