I. Préparation du contrôle▲
Pour un formulaire qui contient un sous-formulaire ou cadre subFormTree.
Option
Explicit
Private
WithEvents oTree As
CtrlTree
Private
Sub
Form_Load
(
) '
UserForm_Initialize
pour
Excel
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. | |
ActiveElement | 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. | |
MouseScrollStep | X | X | Long |
Pas de défilement de la molette de la souris. (Access uniquement) |
Gdi | X | clGdiplus ou clGdi32 | Objet de gestion du graphisme du contrôle. | |
ContainerControl | X | Access.SubForm ou MSForms.Frame |
Contrôle Container. Cadre ou Sous-Formulaire. |
|
Container | Access.Form ou MSForms.Frame |
Container. Cadre ou Formulaire. |
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 :
With
Application.
CommandBars
(
"
Database
"
).
Controls
(
1
)
oGrid.
ImageListAddFromPicture
"
monbouton
"
, .
Picture
, .
Mask
End
With
III-L. ImageListAddFromControl▲
Ajoute une image à la liste d'images du contrôle.
L'image est définie par le contenu d'un contrôle.
Paramètre | Type | Explication |
---|---|---|
pKey | String | Identifiant de l'image. |
pControl | Control | Contrôle contenant 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-M. ImageListAddFromAttachment▲
A partir d’Access 2007.
Ajoute une image à la liste d'images du contrôle.
L'image est définie par le contenu d’un champ pièce-jointe.
Paramètre | Type | Explication |
---|---|---|
pKey | String | Identifiant de l'image. |
pTable | String | Nom de la table |
pField | String | Nom de la colonne |
pWhere | String | Clause where |
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-N. 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-O. 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-P. 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 | Élé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. Draw▲
S'exécute lors du dessin d'un élément.
Paramètre | Type | Explication |
---|---|---|
pElement | CtrlTreeElementBeforeDraw | Élément à dessiner. |
pLeft | Long | Position gauche en pixels |
pTop | Long | Position haut en pixels |
pRight | Long | Position droite en pixels |
pBottom | Long | Position bas en pixels |
Cancel | Boolean | Mettre à Vrai pour annuler le dessin standard. |
Grâce à l’objet Gdi, il est possible de dessiner un élément dans le cade délimité par les positions en arguments.
pRight peut être modifié afin de préciser une modification de la largeur de l’élement.
Exemple :
Private
Sub
oTree2_Draw
(
pElement As
CtrlTreeElementBeforeDraw, pLeft As
Long
, pTop As
Long
, pRight As
Long
, pBottom As
Long
, Cancel As
Boolean
)
If
pElement.
ParentKey
<
>
"
"
Then
Cancel =
True
With
pElement.
Tree
.
Gdi
.
DrawText
pElement.
Text
, .
FontSizeToPixel
(
pElement.
Tree
.
FontSize
), , pLeft, pTop, pLeft +
100
, pBottom, 0
, , IIf
(
pElement.
Active
, pElement.
Tree
.
FontColorSelected
, pElement.
Tree
.
FontColor
), , IIf
(
pElement.
Active
, pElement.
Tree
.
SelectionColor
, -
1
)
.
DrawLine
pLeft +
100
, pTop, pLeft +
100
, pBottom
.
DrawText
"
blablablablablablablablablablablablablablablabla46
"
, .
FontSizeToPixel
(
pElement.
Tree
.
FontSize
), , pLeft +
110
, pTop, pRight, pBottom, 0
pRight =
.
LastTextRight
End
With
End
If
End
Sub
IV-F. MouseMove▲
S'exécute sur déplacement de la souris sur le contrôle.
Paramètre | Type | Explication |
---|---|---|
pElement | CtrlTreeElement | Élé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 ou points. |
Y | Single | Position de la souris sur le contrôle, en twips ou points. |
IV-G. 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 ou points. |
Y | Single | Position de la souris sur le contrôle, en twips ou points. |
IV-H. 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 ou points. |
Y | Single | Position de la souris sur le contrôle, en twips ou points. |
IV-I. 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 ou points. |
Y | Single | Position de la souris sur le contrôle, en twips ou points. |
IV-J. 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▲
Sous Access, pour un formulaire qui contient un sous-formulaire subFormTree.
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
Exemple d'arbres sous Access :