I. Préparation du contrôle▲
Pour un formulaire qui contient un sous-formulaire ou cadre subFormGrid.
Option
Explicit
Private
WithEvents oGrid As
CtrlGrid
Private
Sub
Form_Load
(
) '
UserForm_Initialize
pour
Excel
Set
oGrid =
CreateTGLControl
(
CtrlGrid, Me.
subFormGrid
)
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 |
---|---|---|---|---|
FontName | X | X | String | Nom de la police de caractères. |
FontColor | X | X | Long | Couleur de la police de caractères. |
FontColorSelected | X | X | Long | Couleur de la police de caractères d’une ligne sélectionnée. |
FontSize | X | X | Long | Couleur de la police de caractères, en points. |
BackColor | X | X | Long | Couleur de fond du contrôle. |
MultipleSelection | X | X | Boolean | Définit si la sélection multiple est possible. |
MultiSelectWithoutCtrl | X | X | Boolean | Définit si la sélection multiple se fait avec ou sans appui sur la touche Control. |
SelectionColor | X | X | Long | Couleur de surlignage des éléments sélectionnés. |
AntialisingLevel | X | X | ETGLAntialiase | Niveau de lissage des images. LibTGLplus 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. | |
ActiveRow | X | CtrlGridRow | Ligne active. La ligne active n'est pas forcément sélectionnée. |
|
ActiveColumn | X | CtrlGridColumn | Colonne active. | |
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. |
|
Rows | X | Collection d'objets CtrlGridRow | Collection de lignes contenues dans la grille. | |
Columns | X | Collection d'objets CtrlGridColumn | Collection de colonnes contenues dans la grille. | |
SelectedRow | X | CtrlGridRow | Ligne sélectionnée. Renvoie la première ligne trouvée. |
|
MultipleSelectedRows | X | Collection d'objets CtrlGridRow | Collection de lignes sélectionnées. | |
RowByPos | X | CtrlGridRow | Recherche une ligne par sa position. | |
ColumnByName | X | CtrlGridColumn | Recherche une colonne par son nom. | |
FixedColumns | X | X | Long | Nombre de colonnes figées. |
ColumnHeader | X | X | Boolean | Définit si les en-têtes de colonnes sont affichés. |
HeaderHeight | X | X | Long | Hauteur des en-têtes de colonnes, en pixels. |
DisplayHorizontalLine | X | X | Long | Définit l'affichage des lignes horizontales de séparation. |
RowHeight | X | X | Long | Hauteur d'un élément, en pixels. |
RowSource | X | X | String |
Source de données de la grille. (Access uniquement) |
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. ColumnAdd▲
Ajoute une colonne à la grille.
Paramètre | Type | Explication |
---|---|---|
pName | String | Nom identifiant la colonne. |
pType | ECtrlGridColumnType | Type de colonne. |
pBefore | String | Nom de la colonne avant laquelle insérer la nouvelle colonne. |
pAfter | String | Nom de la colonne après laquelle insérer la nouvelle colonne. |
Valeur renvoyée | CtrlGridColumn | Colonne ajoutée. |
III-B. ColumnRemove▲
Retire une colonne.
Paramètre | Type | Explication |
---|---|---|
pName | String | Nom identifiant la colonne. |
III-C. RowAdd▲
Ajoute une ligne à la grille.
Paramètre | Type | Explication |
---|---|---|
pKey | String | Identifiant de la ligne. Laisser vide pour générer automatiquement un identifiant unique. |
Valeur renvoyée | CtrlGridRow | Ligne ajoutée. |
III-D. RowRemove▲
Retire une ligne de la grille.
Paramètre | Type | Explication |
---|---|---|
pKey | String | Identifiant la ligne. |
III-E. Refresh▲
III-F. RefreshCell▲
Redessine une cellule.
Paramètre | Type | Explication |
---|---|---|
pRow | CtrlGridRow | Ligne contenant la cellule à redessiner. |
pColumn | String | Identifiant de la colonne à redessiner. |
III-G. Clear▲
III-H. AutoSize▲
Définit le redimensionnement automatique de toutes les colonnes.
III-I. HeaderAutoSize▲
Définit le redimensionnement automatique des colonnes en fonction des libellés de colonnes.
III-J. SortRowsByValue▲
Trie les lignes 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-K. GetRowByValue▲
Recherche une ligne 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 | CtrlImageListElement | Le premier élément trouvé est renvoyé. Si aucun élément n'est trouvé, la fonction renvoie Nothing |
III-L. Requery▲
Pour Access.
Recharge la grille avec les données de la requête SQL définie par la propriété RowSource.
III-M. 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. |
pThumbNail | Boolean | Si Vrai, utilise la miniature Exif pour un affichage plus rapide. Ne fonctionne qu'avec Gdi+. |
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-N. 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-O. 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
)
oList.
ImageListAddFromPicture
"
monbouton
"
, .
Picture
, .
Mask
End
With
III-P. 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-Q. 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-R. 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-S. 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-T. 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. SelectionChanged▲
S’exécute lorsque la sélection des lignes est modifiée.
IV-B. ActiveRowChanged▲
S'exécute sur changement de la ligne active.
Paramètre | Type | Explication |
---|---|---|
pRow | CtrlGridRow | Ligne active. Nothing si aucune ligne n'est active. |
IV-C. BeforeDrawCell▲
S'exécute avant dessin d'une cellule de la grille.
Paramètre | Type | Explication |
---|---|---|
pRow | CtrlGridRowBeforeDraw | Ligne. |
pColumn | CtrlGridColumnBeforeDraw | Colonne. |
Les modifications apportées à la ligne ou à la colonne ne sont pas définitives.
Elles ne sont valables que le temps du dessin de cette cellule.
IV-D. MouseMove▲
S'exécute sur déplacement de la souris sur le contrôle.
Paramètre | Type | Explication |
---|---|---|
pRow | CtrlGridRow | Ligne survolée par la souris. |
pColumn | CtrlGridColumn | Colonne survolée par 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. |
Y | Single | Position de la souris sur le contrôle, en twips. |
IV-E. MouseDown▲
S'exécute sur souris appuyée sur le contrôle.
Paramètre | Type | Explication |
---|---|---|
pRow | CtrlGridRow | Ligne survolée par la souris. |
pColumn | CtrlGridColumn | Colonne survolée par 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. |
Y | Single | Position de la souris sur le contrôle, en twips. |
IV-F. MouseUp▲
S'exécute sur souris relâchée sur le contrôle.
Paramètre | Type | Explication |
---|---|---|
pRow | CtrlGridRow | Ligne survolée par la souris. |
pColumn | CtrlGridColumn | Colonne survolée par 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. |
Y | Single | Position de la souris sur le contrôle, en twips. |
IV-G. MouseDblClick▲
S'exécute sur double-clic de la souris sur le contrôle.
Paramètre | Type | Explication |
---|---|---|
pRow | CtrlGridRow | Ligne survolée par la souris. |
pColumn | CtrlGridColumn | Colonne survolée par 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. |
Y | Single | Position de la souris sur le contrôle, en twips. |
IV-H. KeyDown▲
S'exécute sur touche appuyée sur le contrôle.
Paramètre | Type | Explication |
---|---|---|
pRow | CtrlGridRow | Ligne survolée par la souris. |
pColumn | CtrlGridColumn | Colonne survolée par la souris. |
KeyCode | Integer | Code de la touche appuyée. |
Shift | Integer | Etat des touches Shift, Alt et Ctrl. |
V. Exemple▲
Pour ACCESS :
Pour un formulaire qui contient un sous-formulaire subFormGrid.
Avec une table TGridTable :
Option
Compare Database
Option
Explicit
'
Objet
Grille
Private
WithEvents oGrid As
CtrlGrid
Private
Sub
Form_Load
(
)
'
Initialise
l'objet
Set
oGrid =
CreateTGLControl
(
CtrlGrid, Me.
subFormGrid
)
'
Affiche
les
en-têtes
oGrid.
ColumnHeader
=
True
'
Source
de
données
oGrid.
RowSource
=
"
select
false
as
sel,*
from
TGridTable
"
'
Ajout
d'une
colonne
de
sélection
(checkbox)
avec
le
champ
sel
en
source
With
oGrid.
ColumnByName
(
"
sel
"
)
.
TypeColumn
=
TGLColumnTypeCheckBox
.
AllowResize
=
False
.
Caption
=
"
"
.
DisplayVertLine
=
False
End
With
'
Champ
notation
oGrid.
ColumnByName
(
"
note
"
).
TypeColumn
=
TGLColumnTypeRating
'
Champ
progression
oGrid.
ColumnByName
(
"
progression
"
).
TypeColumn
=
TGLColumnTypeProgress
oGrid.
ColumnByName
(
"
progression
"
).
DisplayProgressPercent
=
True
'
Champ
Valide
(case
à
cocher)
oGrid.
ColumnByName
(
"
valide
"
).
Width
=
-
1
oGrid.
ColumnByName
(
"
valide
"
).
HorzAlign
=
TGLAlignHorzCenter
'
Date
validité
en
gras
oGrid.
ColumnByName
(
"
datevalid
"
).
Bold
=
True
'
Nom
en
italique
oGrid.
ColumnByName
(
"
nom
"
).
Italic
=
True
'
Exécute
la
requête
et
rempli
la
grille
oGrid.
Requery
'
Colonnes
auto-redimensionnées
oGrid.
AutoSize
'
En-têtes
auto-redimensionnés
oGrid.
HeaderAutoSize
'
Redimensionne
la
colonne
de
notation
oGrid.
ColumnByName
(
"
note
"
).
Width
=
80
'
Ajout
d'un
bouton
dans
la
dernière
colonne
With
oGrid.
ColumnAdd
(
"
Button
"
, TGLColumnTypeImage)
.
Width
=
60
.
AllowResize
=
False
.
MouseCursor
=
IDC_HAND
.
ConstantValue
=
"
monbouton
"
End
With
'
Couleur
de
fond
oGrid.
BackColor
=
RGB
(
230
, 230
, 255
)
'
Couleur
de
sélection
(aucune
couleur)
oGrid.
SelectionColor
=
-
1
'
Sélection
multiple
acceptée
(touche
CTRL)
oGrid.
MultipleSelection
=
True
'
Les
deux
premières
colonnes
sont
fixes
oGrid.
FixedColumns
=
2
'
Ajout
de
l'image
du
bouton
à
partir
d'une
image
de
menu
'
Référence
"Microsoft
Office
XX
Object
Library"
requise
Dim
o As
CommandBarControl
oGrid.
ImageListAddFromPicture
"
monbouton
"
, CommandBars
(
"
Database
"
).
Controls
(
1
).
Picture
, _
CommandBars
(
"
Database
"
).
Controls
(
1
).
Mask
'
Hauteur
des
lignes
oGrid.
RowHeight
=
40
'
Dessine
la
grille
oGrid.
Refresh
End
Sub
'
Avant
affichage
d'un
cellule
Private
Sub
oGrid_BeforeDrawCell
(
pRow As
CtrlGridRowBeforeDraw, pColonne As
CtrlGridColumnBeforeDraw)
Select
Case
pColonne.
Name
Case
"
nb
"
'
Nombre
à
afficher
en
rouge
ou
vert
If
pRow.
Value
(
pColonne.
Name
) <
300
Then
pColonne.
FillColor
=
vbRed
Else
pColonne.
FillColor
=
vbGreen
Case
"
sel
"
'
Case
coché
si
ligne
sélectionnée
pRow.
Value
(
"
sel
"
) =
pRow.
Selected
End
Select
End
Sub
'
Sur
click
souris
Private
Sub
oGrid_MouseDown
(
pRow As
CtrlGridRow, pCol As
CtrlGridColumn, Button As
Integer
, Shift As
Integer
, X As
Single
, Y As
Single
)
If
Not
pCol Is
Nothing
Then
If
pCol.
Name
=
"
Button
"
Then
'
Si
click
sur
bouton
=>
affiche
un
message
avec
le
nom
de
la
ligne
cliquée
MsgBox
pRow.
Value
(
"
Nom
"
)
End
If
End
If
End
Sub
Résultat obtenu :