Le contrôle Arbre - CtrlTreeDate de publication : 02/12/09 , Date de mise à jour : 01/02/10
Par
Thierry GASPERMENT (arkham46.developpez.com/)
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. |
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.
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
Private WithEvents oTree As CtrlTree
Private Sub Form_Load ()
Set oTree = CreateTGLControl (CtrlTree, Me. subFormTree )
With oTree. ElementAdd (" Element Racine n°1 " )
oTree. ElementAdd " Element Fils 1 " , , . Key
oTree. ElementAdd " Element Fils 2 " , , . Key
End With
With oTree. ElementAdd (" Element Racine n°2 " )
oTree. ElementAdd " Element Fils 1 " , , . Key
oTree. ElementAdd " Element Fils 2 " , , . Key
oTree. ElementAdd " Element Fils 3 " , , . Key
End With
oTree. Refresh
End Sub
Private Sub oTree_ActiveElementChanged (pElement As LibTGL. CtrlTreeElement )
If pElement Is Nothing Then
SysCmd acSysCmdClearStatus
Else
SysCmd acSysCmdSetStatus, " Sélection de " & pElement. Text
End If
End Sub
|
Les sources présentés sur cette page sont libres de droits,
et vous pouvez les utiliser à votre convenance. Par contre cette page de présentation de ces sources constitue une oeuvre intellectuelle protégée par les droits d'auteurs. 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'à 3 ans de prison et jusqu'à 300 000 E de dommages et intérêts.
Droits de diffusion permanents accordés à Developpez LLC. Cette page est déposée à la SACD.
|