Comment utiliser le composant virtualtreeview
Comment utiliser le composant virtualtreeview
En regardant les exemples:
http://www.delphi-gems.com/Downloads.php
L'utilisation d'un virtualtreeview est assez complexe, mais tres puissante. Le principe quand à lui est simple, à chaque noeud on associe le pointeur d'un objet. Ensuite au moment de l'affichage de chaque celulles, on traite les valeurs à afficher. Par exemple, on veut afficher une liste de voitures...Il faut donc créer et definir un object tVoiture.
ensuite dans un evenement quelconque, par exemple lorsqu'on clique sur le bouton1, on affiche une liste de voiture.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 TTypeVoiture = (tvBerline, tvCoupe, tvBreak, tvMonospace); TVoiture = class fMarque : string; fModele : string; fAnnee : tDate; fTypeVoiture : tTypeVoiture; end;
Jusqu'ici nous n'avons que rempli la liste, mais pas géré l'affichage des zones, il faut donc aller dans le gestionnaire d'evenements du virtualtreeview, plus exactement dans le onGetText. Attention, pour pouvoir afficher plusieurs colonnes, il faut aller en ajouter dans la propriete "Header" du virtualtreeview. Dans notre cas, nous allons en créer 4. Ensuite, code l'evenement suivant:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36 tForm1.Onbutton1Click(Sender : tObject); var NouvelleVoiture : tVoiture; begin //On vide le treeview VirtualTreeview1.clear; //On lui indique la taille de l'objet qui doit stocker VirtualTreeview1.NodeDataSize := SizeOf(tVoiture); //On crée et défini le nouvel objet NouvelleVoiture := tVoiture.Create; NouvelleVoiture.fMarque := 'Opel'; NouvelleVoiture.fModele := 'Astra'; NouvelleVoiture.fAnnee := Now; NouvelleVoiture.fTypeVoiture := tvCoupe; //On ajoute l'objet à la liste VirtualTreeview1.AddChild(nil,NouvelleVoiture); NouvelleVoiture := tVoiture.Create; NouvelleVoiture.fMarque := 'Volkswagen'; NouvelleVoiture.fModele := 'Golf'; NouvelleVoiture.fAnnee := Now; NouvelleVoiture.fTypeVoiture := tvCoupe; //On ajoute l'objet à la liste VirtualTreeview1.AddChild(nil,NouvelleVoiture); end; NouvelleVoiture := tVoiture.Create; NouvelleVoiture.fMarque := 'Ford'; NouvelleVoiture.fModele := 'Focus'; NouvelleVoiture.fAnnee := Now; NouvelleVoiture.fTypeVoiture := tvCoupe; //On ajoute l'objet à la liste VirtualTreeview1.AddChild(nil,NouvelleVoiture); //Et ainsi de suite...
Voila, j'espere que je t'aurais un peu aidé...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 procedure Tform1.VirtualTreeview1GetText( Sender: TBaseVirtualTree; Node: PVirtualNode; Column: TColumnIndex; TextType: TVSTTextType; var CellText: WideString); var //On indique que nous allons recuperer l'adresse du pointeur Voiture: ^tVoiture; begin //On alloue la valeur au pointeur Voiture:= Sender.GetNodeData(Node); Case Column of //On gere l'affichage suivant les critere que nous voulons (ici la colonne) 0: CellText := Voiture.fMarque; 1: CellText := Voiture.fModele; 2: CellText := DateTimeToStr(voiture.date); end; end;
moi ce que je veux afficher une arborescence des données d'une base de données
je sais pas cmt faire
merci pour votre aide
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager