Le contrôle Liste d'image - Explorateur de fichiers - CtrlImageListExplorer

Thierry GASPERMENT

Ce contrôle affiche les fichiers et dossiers de l'ordinateur sous forme de liste d'images.

Retour à la page d'accueil.

Commentez

- Titre : Le contrôle Liste d'image - Explorateur de fichiers - CtrlImageListExplorer

- Auteur : Thierry GASPERMENT

- Parution : 2 décembre 2009

- Mise à jour : 18 mai 2018

- Licence : 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.

Sommaire

- I. Préparation du contrôle

- II. Propriétés

- III. Méthodes

- III-A. ElementAdd

- III-B. Refresh

- III-C. Clear

- III-D. NavigateBack

- IV. Evénements

- IV-A. ActiveElementChanged

- IV-B. PathChanged

- IV-C. BeforeDraw

- IV-D. BeforeDrawMenu

- IV-E. MouseMove

- IV-F. MouseDown

- IV-G. MouseUp

- IV-H. MouseDblClick

- IV-I. KeyDown

- IV-J. AfterDrawImage

- IV-K. BeforeLoadImage

- V. Exemple

I - Préparation du contrôle

Pour un formulaire qui contient un sous-formulaire ou cadre subFormImageListExplorer.

Préparation de l'objet contrôle

Option Explicit

Private WithEvents oList As CtrlImageListExplorer

Private Sub Form_Load() ' UserForm_Initialize pour Excel
Set oList = CreateTGLControl(CtrlImageListExplorer, Me.subFormImageListExplorer)
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

Extensions

X

X

String

Liste des extensions à afficher.
Exemple : "jpg,png,bmp,gif"

FilesOnly

X

X

Boolean

Si Vrai, seuls les fichiers sont affichés.

OpenFileOnDblClick

X

X

Boolean

Si Vrai, les fichiers sont ouverts par double-clic.

NavigateOnDblClick

X

X

Boolean

Si Vrai, navigue par double-clic sur les disques ou dossiers.

DisplayMyDocuments

X

X

Boolean

Si Vrai (par défaut), le dossier Mes documents est affiché.

DisplayMyPictures

X

X

Boolean

Si Vrai (par défaut), le dossier Mes images est affiché.

SortBy

X

X

ETGLExplorerSortOrder

Ordre de tri à appliquer (ascendant ou descendant).

SortOrder

X

X

ETGLExplorerSortBy

Type de tri à appliquer à l'explorateur.

ListObject

X

CtrlImageList

Objet Liste d'images utilisé pour gérer l'explorateur.

LinkedTree

X

X

SubForm contenant un objet CtrlTreeExplorer

Arbre lié à l'explorateur.

Pour Excel, passez directement l’objet CtrlTreeExplorer.

Path

X

X

String

Chemin courant.
Les fichiers et dossiers de ce chemin sont affichés dans la liste.
Définissez un chemin vide ("") pour afficher les disques de l'ordinateur.
Utilisez ensuite Refresh pour mettre à jour l'affichage.

III - Méthodes

III-A - ElementAdd

Ajoute un élément à la liste à partir de son chemin.

Paramètre

Type

Explication

pPath

String

Chemin de l'élément.

pType

ETGLExplorerElementType

Type de l'élément à ajouter.
N'utilisez pas ce paramètre si vous ne connaissez pas le type d'élément.

Valeur renvoyée

CtrlImageListElement

Elément ajouté.

III-B - Refresh

Redessine le contrôle.

III-C - Clear

Vide la liste.

Utilisez ensuite Refresh pour mettre à jour l'affichage.

III-D - NavigateBack

Navigue vers le dossier parent.

Utilisez ensuite Refresh pour mettre à jour l'affichage.

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 - PathChanged

S'exécute sur changement du chemin.

Paramètre

Type

Explication

pPath

String

Nouveau chemin.

IV-C - BeforeDraw

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

Paramètre

Type

Explication

pElement

CtrlImageListElementBeforeDraw

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-D - BeforeDrawMenu

S'exécute avant dessin du menu.

Paramètre

Type

Explication

pElement

CtrlImageListElementBeforeDraw

Elément à dessiner.

pMenu

CtrlImageListMenu

Elément à dessiner.

pElement est l'élément après passage dans l'événement BeforeDraw.

Les modifications apportées au menu sont définitifs.
Elles s'appliqueront également aux prochains dessins du menu.

IV-E - MouseMove

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

Paramètre

Type

Explication

pElement

CtrlImageListElement

Elément survolé par la souris.
Nothing si aucun élément n'est survolé.

pMenuKey

String

Identifiant de l'élément de menu sous la souris.

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-F - MouseDown

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

Paramètre

Type

Explication

pElement

CtrlImageListElement

Elément survolé par la souris.
Nothing si aucun élément n'est survolé.

pMenuKey

String

Identifiant de l'élément de menu sous la souris.

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 - MouseUp

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

Paramètre

Type

Explication

pElement

CtrlImageListElement

Elément survolé par la souris.
Nothing si aucun élément n'est survolé.

pMenuKey

String

Identifiant de l'élément de menu sous la souris.

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-H - MouseDblClick

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

Paramètre

Type

Explication

pElement

CtrlImageListElement

Elément survolé par la souris.
Nothing si aucun élément n'est survolé.

pMenuKey

String

Identifiant de l'élément de menu sous la souris.

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-I - KeyDown

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

Paramètre

Type

Explication

pElement

CtrlImageListElement

Elément survolé par la souris.
Nothing si aucun élément n'est survolé.

pMenuKey

String

Identifiant de l'élément de menu sous la souris.

KeyCode

Integer

Code de la touche appuyée.

Shift

Integer

Etat des touches Shift, Alt et Ctrl.

IV-J - AfterDrawImage

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

Cet événement n'est déclenché que si RaiseAfterDraw = True.

Paramètre

Type

Explication

pElement

CtrlImageListElementBeforeDraw

Elément à dessiner.

pCancelDraw

Boolean

Si Vrai, ne redessine pas l'image.

Il est possible de modifier l'image ImageName de l'é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.

Exemple :

Affiche un texte en haut à gauche des images

Private Sub oList_AfterDrawImage(pElement As CtrlImageListElementBeforeDraw, pCancelDraw As Boolean)
If pElement.ImageName <> "" Then
oList.ListObject.Gdi.ImageListDrawText pElement.ImageName, "test", 34, , 0, 0, 100, 100, 0, 0
End If
End Sub

IV-K - BeforeLoadImage

S'exécute avant le chargement d'une image pour permettre un chargement spécifique.

Paramètre

Type

Explication

pElement

CtrlImageListElement

Elément à dessiner.

pCancelLoad

Boolean

Si Vrai, annule le chargement de l'image par le contrôle.

Il est possible de charger l'image ImageName de l'élément de manière spécifique.

Astuce : Mettre une valeur quelconque dans la propriété ImagePath de l'élément à sa création pour charger l'image de manière asynchrone.

Exemple :

Charge une image

Private Sub oList_BeforeLoadImage(pElement As CtrlImageListElement, pCancelLoad As Boolean)
oList.ListObject.ImageListAdd pElement.ImagePath, pElement.ImagePath, , True
pElement.ImageName = pElement.ImagePath
pCancelLoad = True
End Sub

V - Exemple

Pour un formulaire qui contient un sous-formulaire ou cadre subFormList.

Exemple d'utilisation

Option Explicit

' Objet Contrôle
Private WithEvents oList As CtrlImageListExplorer

Private Sub Form_Load() ' UserForm_Initialize pour Excel
' Initialisation du contrôle
Set oList = CreateTGLControl(CtrlImageListExplorer, Me.subFormList)
' Taille des image
oList.ListObject.ImageWidth = 120
' Taille du texte
oList.ListObject.FontSize = 8
' Couleur de fond
oList.ListObject.BackColor = RGB(255, 240, 240)
' Couleur du texte
oList.ListObject.FontColor = RGB(50, 50, 200)
' Tri par date
oList.SortBy = TGLExplorerSortByDate
' Chemin vide => affichage des disques
oList.Path = ""
' Redessine le contrôle
oList.Refresh
End Sub