Developpez.com - Access
X

Choisissez d'abord la catégorieensuite la rubrique :


Le contrôle Arbre - CtrlTree

Date de publication : 02/12/09 , Date de mise à jour : 01/02/10

Par Thierry GASPERMENT (arkham46.developpez.com/)
 

Ce contrôle affiche des éléments sous forme d'arbre.

Retour à la page d'accueil.

9 commentaires Donner une note à l'article (5)

               Version PDF (Miroir)   Version hors-ligne (Miroir)

I. Préparation du contrôle
II. Propriétés
III. Méthodes
III-A. ElementAdd
III-B. ElementRemove
III-C. Refresh
III-D. Clear
III-E. ExpandAll
III-F. CollapseAll
III-G. SortElementsByValue
III-H. GetElementByValue
III-I. ImageListAdd
III-J. ImageListAddFromArray
III-K. ImageListAddFromPicture
III-L. ImageListExists
III-M. ImageListRemove
III-N. ImageListRemoveAll
IV. Evénements
IV-A. ActiveElementChanged
IV-B. ExpandElement
IV-C. CollapseElement
IV-D. BeforeDraw
IV-E. MouseMove
IV-F. MouseDown
IV-G. MouseUp
IV-H. MouseDblClick
IV-I. KeyDown
V. Exemple


I. Préparation du contrôle


Pour un formulaire qui contient un sous-formulaire subFormTree.

Préparation de l'objet contrôle

Option Compare Database
Option Explicit

Private WithEvents oTree As CtrlTree

Private Sub Form_Load()
Set oTree = CreateTGLControl(CtrlTree, Me.subFormTree)
End Sub
				



II. Propriétés

La colonne Get indique si la propriété est disponible en lecture.
La colonne Set indique si la propriété est disponible en écriture.


Propriété Get Let Type Explication
DisplayAsTree X X Long Affichage sous forme d'arbre.
Si Faux, les éléments sont affichés l'un en dessous de l'autre comme une simple liste.
DisplayImages X X Long Affichage des images.
Si Faux, les images ne sont pas affichées devant les éléments.
FontName X X String Nom de la police de caractères.
FontColor X X Long Couleur de la police de caractères.
FontSize X X Long Couleur de la police de caractères, en points.
BackColor X X Long Couleur de fond du contrôle.
SelectionColor X X Long Couleur de surlignage de la ligne sélectionnée.
AntialisingLevel X X ETGLAntialiase Niveau de lissage des images.
LibTGLGdiplus propose plus de niveaux de lissage que LibTGL32.
FirstVisibleRow X X Long Numéro de la première ligne visible.
Utilisez ensuite Refresh pour mettre à jour l'affichage.
LastVisibleRow X   Long Numéro de la dernière ligne visible.
SelectedElement X   CtrlTreeElement Elément sélectionné.
CountVisible X   Long Nombre d'éléments affichables sur le contrôle.
Dépend de la taille du contrôle et de la taille des éléments.
Elements X   Collection d'objets CtrlTreeElement Collection d'éléments contenus dans l'arbre.

III. Méthodes



III-A. ElementAdd

 
Ajoute un élément à l'arbre.


Paramètre Type Explication
pTexte String Texte affiché dans l'arbre.
pKey String Identifiant de l'élément.
Passez une chaîne vide pour générer un identifiant unique.
pParentKey String Identifiant de l'élément parent.
Passez une chaîne vide pour ajout un élément racine.
Valeur renvoyée CtrlTreeElement Elément ajouté.


III-B. ElementRemove

 
Retire un élément de l'arbre.


Paramètre Type Explication
pKey String Identifiant de l'élément à retirer.
Les éléments fils sont également retirés.

III-C. Refresh

 
Redessine le contrôle.


Paramètre Type Explication
pRepaint Boolean Si Faux, le contrôle n'est pas redessiné à l'écran.



III-D. Clear

Vide l'arbre.

Utilisez ensuite Refresh pour mettre à jour l'affichage.


III-E. ExpandAll

Déroule tous les noeuds.

Utilisez ensuite Refresh pour mettre à jour l'affichage.


III-F. CollapseAll

Replie tous les noeuds.

Utilisez ensuite Refresh pour mettre à jour l'affichage.


III-G. SortElementsByValue

Trie les éléments par valeur.


Paramètre Type Explication
pValueName String Identifiant de la valeur sur laquelle s'effectue le tri.
pDescending Boolean Si Vrai, le tri est descendant, sinon il est ascendant par défaut.



III-H. GetElementByValue

Recherche un élément par une valeur.


Paramètre Type Explication
pValueName String Identifiant de la valeur sur laquelle s'effectue la recherche.
pValue Variant Valeur à rechercher.
Valeur renvoyée CtrlTreeElement Le premier élément trouvé est renvoyé.
Si aucun élément n'est trouvé, la fonction renvoie Nothing



III-I. ImageListAdd

Ajoute une image à la liste d'images du contrôle.


Paramètre Type Explication
pKey String Identifiant de l'image.
pFile String Chemin du fichier de l'image.
pIcon ETGLIconType Type d'icône à charger.
pPersistent String Si Vrai, l'image est persistante et ne sera pas supprimée par la fonction Clear.
Valeur renvoyée Boolean Vrai si l'image a été ajoutée avec succès.



III-J. ImageListAddFromArray

Ajoute une image à la liste d'images du contrôle.

L'image est définie par le contenu d'un tableau de byte.

Pour Gdi32, le tableau contient un bitmap tel que défini dans la propriété PictureData d'un contrôle image.

Pour Gdi+, le tableau contient une image telle qu'on peut la trouver dans un fichier (jpeg, png, ...).


Paramètre Type Explication
pKey String Identifiant de l'image.
pArray Tableau de Byte Contenu de l'image.
pPersistent String Si Vrai, l'image est persistante et ne sera pas supprimée par la fonction Clear.
Valeur renvoyée Boolean Vrai si l'image a été ajoutée avec succès.



III-K. ImageListAddFromPicture

Ajoute une image à la liste d'images du contrôle.

L'image est définie par une image et un masque gdi32.


Paramètre Type Explication
pKey String Identifiant de l'image.
pPicture Long Bitmap gdi32 contenant l'image.
pMask Long Bitmap gdi32 contenant le masque.
pDelete Boolean Si Vrai, les bitmaps utilisés sont ensuite supprimés.
pPersistent Boolean Si Vrai, l'image est persistante et ne sera pas supprimée par la fonction Clear.
Valeur renvoyée Boolean Vrai si l'image a été ajoutée avec succès.

Exemple :

Ajout d'une image à partir d'un contrôle de menu

With Application.CommandBars("Database").Controls(1)
    oGrid.ImageListAddFromPicture "monbouton", .Picture, .Mask
End With

III-L. ImageListExists

Teste si une image existe dans la liste d'images du contrôle.


Paramètre Type Explication
pKey String Identifiant de l'image.
Valeur renvoyée Boolean Vrai si l'image existe.



III-M. ImageListRemove

Retire une image de la liste d'images du contrôle.


Paramètre Type Explication
pKey String Identifiant de l'image.

Une erreur est levée si l'identifiant n'est pas valide (image inexistante).



III-N. ImageListRemoveAll

Retire toutes les images de la liste d'images du contrôle.

Les images qui ont été ajoutées avec le paramètre pPersistent = Vrai ne sont pas retirées.



IV. Evénements



IV-A. ActiveElementChanged

S'exécute sur changement de l'élément actif.


Paramètre Type Explication
pElement CtrlTreeElement Elément actif.
Nothing si aucun élément n'est actif.



IV-B. ExpandElement

S'exécute sur ouverture d'un noeud.


Paramètre Type Explication
pElement CtrlTreeElement Elément actif.
Nothing si aucun élément n'est actif.



IV-C. CollapseElement

S'exécute sur fermeture d'un noeud.


Paramètre Type Explication
pElement CtrlTreeElement Elément actif.
Nothing si aucun élément n'est actif.



IV-D. BeforeDraw

S'exécute avant dessin d'un élément.


Paramètre Type Explication
pElement CtrlTreeElementBeforeDraw Elément à dessiner.

Les modifications apportées à l'élément ne sont pas définitives.
Elles ne sont valables que le temps du dessin de cet élément.


IV-E. MouseMove

S'exécute sur déplacement de la souris sur le contrôle.


Paramètre Type Explication
pElement CtrlTreeElement Elément survolé par la souris.
Nothing si aucun élément n'est survolé.
Button Integer Bouton de la souris appuyé.
Shift Integer Etat des touches Shift, Alt et Ctrl.
X Single Position de la souris sur le contrôle, en twips.
Y Single Position de la souris sur le contrôle, en twips.



IV-F. MouseDown

S'exécute sur souris appuyée sur le contrôle.


Paramètre Type Explication
pElement CtrlTreeElement Elément survolé par la souris.
Nothing si aucun élément n'est survolé.
Button Integer Bouton de la souris appuyé.
Shift Integer Etat des touches Shift, Alt et Ctrl.
X Single Position de la souris sur le contrôle, en twips.
Y Single Position de la souris sur le contrôle, en twips.



IV-G. MouseUp

S'exécute sur souris relâchée sur le contrôle.


Paramètre Type Explication
pElement CtrlTreeElement Elément survolé par la souris.
Nothing si aucun élément n'est survolé.
Button Integer Bouton de la souris relâché.
Shift Integer Etat des touches Shift, Alt et Ctrl.
X Single Position de la souris sur le contrôle, en twips.
Y Single Position de la souris sur le contrôle, en twips.



IV-H. MouseDblClick

S'exécute sur double-clic de la souris sur le contrôle.


Paramètre Type Explication
pElement CtrlTreeElement Elément survolé par la souris.
Nothing si aucun élément n'est survolé.
Button Integer Bouton de la souris appuyé.
Shift Integer Etat des touches Shift, Alt et Ctrl.
X Single Position de la souris sur le contrôle, en twips.
Y Single Position de la souris sur le contrôle, en twips.



IV-I. KeyDown

S'exécute sur touche appuyée sur le contrôle.


Paramètre Type Explication
pElement CtrlTreeElement Elément survolé par la souris.
Nothing si aucun élément n'est survolé.
KeyCode Integer Code de la touche appuyée.
Shift Integer Etat des touches Shift, Alt et Ctrl.



V. Exemple


Pour un formulaire qui contient un sous-formulaire subFormTree.

Exemple d'arbre

Option Compare Database
Option Explicit

' Objet Arbre
Private WithEvents oTree As CtrlTree

Private Sub Form_Load()
' Initialisation du contrôle
Set oTree = CreateTGLControl(CtrlTree, Me.subFormTree)
' Ajoute un élément racine
With oTree.ElementAdd("Element Racine n°1")
    ' Ajoute 2 fils à cet élément (.key est l'identifiant de l'élément)
    oTree.ElementAdd "Element Fils 1", , .Key
    oTree.ElementAdd "Element Fils 2", , .Key
End With
' Ajoute un deuxième élément racine
With oTree.ElementAdd("Element Racine n°2")
    ' Ajoute 3 fils à cet élément
    oTree.ElementAdd "Element Fils 1", , .Key
    oTree.ElementAdd "Element Fils 2", , .Key
    oTree.ElementAdd "Element Fils 3", , .Key
End With
' Redessine le contrôle
oTree.Refresh
End Sub

Private Sub oTree_ActiveElementChanged(pElement As LibTGL.CtrlTreeElement)
' Affiche le texte de l'élément actif dans la barre d'état
If pElement Is Nothing Then
    SysCmd acSysCmdClearStatus
Else
    SysCmd acSysCmdSetStatus, "Sélection de " & pElement.Text
End If
End Sub
				



               Version PDF (Miroir)   Version hors-ligne (Miroir)

Valid XHTML 1.0 TransitionalValid CSS!

Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright © 2009 Thierry GASPERMENT. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts. Droits de diffusion permanents accordés à Developpez LLC.

Responsables bénévoles de la rubrique Access : Pierre Fauconnier - Arkham46 -