====== 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.
- L'image "Normale", dont le ''TImageList'' sera stocké dans la property ''images'' et la largeur définie dans la propety ''imagesWidth''.
- 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:
* ''ikNormal'' : L'image "Normale"
* ''ikSelected'' : L'image "Normale" quand la ligne est séléctionnée
* ''ikState'' : L'image "State"
* ''ikOverlay'' : .....
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 ======