Le contrôle Grille - CtrlGridDate de publication : 02/12/09 , Date de mise à jour : 02/12/09
Par
Thierry GASPERMENT (arkham46.developpez.com/)
I. Préparation du contrôle
II. Propriétés
III. Méthodes
III-A. ColumnAdd
III-B. ColumnRemove
III-C. RowAdd
III-D. RowRemove
III-E. Refresh
III-F. RefreshCell
III-G. Clear
III-H. AutoSize
III-I. HeaderAutoSize
III-J. SortRowsByValue
III-K. GetRowByValue
III-L. Requery
III-M. ImageListAdd
III-N. ImageListAddFromArray
III-O. ImageListAddFromPicture
III-P. ImageListExists
III-Q. ImageListRemove
III-R. ImageListRemoveAll
IV. Evénements
IV-A. ActiveRowChanged
IV-B. BeforeDrawCell
IV-C. MouseMove
IV-D. MouseDown
IV-E. MouseUp
IV-F. MouseDblClick
IV-G. KeyDown
V. Exemple
I. Préparation du contrôle
Pour un formulaire qui contient un sous-formulaire subFormGrid.
Préparation de l'objet contrôle |
Option Compare Database
Option Explicit
Private WithEvents oGrid As CtrlGrid
Private Sub Form_Load ()
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. |
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.
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. |
ActiveRow |
X |
|
CtrlGridRow |
Ligne active. La ligne active n'est pas forcément sélectionnée. |
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 table. Peut être le nom d'une requête ou d'une table, ou du SQL.
Utilisez Requery pour charger les données dans la grille. |
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. |
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. |
III-D. RowRemove
Retire une ligne de la grille.
Paramètre |
Type |
Explication |
pKey |
String |
Identifiant la ligne. |
III-E. Refresh
Redessine le contrôle.
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
Vide la liste.
Utilisez ensuite Refresh pour mettre à jour l'affichage.
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
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 :
Ajout d'une image à partir d'un contrôle de menu |
With Application. CommandBars (" Database " ). Controls (1 )
oList. ImageListAddFromPicture " monbouton " , . Picture , . Mask
End With
|
III-P. 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-Q. 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-R. 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. 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-B. BeforeDrawCell
S'exécute avant dessin d'une cellule de la grille.
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-C. 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-D. 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-E. 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-F. 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-G. 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 un formulaire qui contient un sous-formulaire subFormGrid.
Avec une table TGridTable :
Exemple de grille affichant les données d'une table |
Option Compare Database
Option Explicit
Private WithEvents oGrid As CtrlGrid
Private Sub Form_Load ()
Set oGrid = CreateTGLControl (CtrlGrid, Me. subFormGrid )
oGrid. ColumnHeader = True
oGrid. RowSource = " select false as sel,* from TGridTable "
With oGrid. ColumnByName (" sel " )
. TypeColumn = TGLColumnTypeCheckBox
. AllowResize = False
. Caption = " "
. DisplayVertLine = False
End With
oGrid. ColumnByName (" note " ). TypeColumn = TGLColumnTypeRating
oGrid. ColumnByName (" progression " ). TypeColumn = TGLColumnTypeProgress
oGrid. ColumnByName (" progression " ). DisplayProgressPercent = True
oGrid. ColumnByName (" valide " ). Width = - 1
oGrid. ColumnByName (" valide " ). HorzAlign = TGLAlignHorzCenter
oGrid. ColumnByName (" datevalid " ). Bold = True
oGrid. ColumnByName (" nom " ). Italic = True
oGrid. Requery
oGrid. AutoSize
oGrid. HeaderAutoSize
oGrid. ColumnByName (" note " ). Width = 80
With oGrid. ColumnAdd (" Button " , TGLColumnTypeImage)
. Width = 60
. AllowResize = False
. MouseCursor = IDC_HAND
. ConstantValue = " monbouton "
End With
oGrid. BackColor = RGB (230 , 230 , 255 )
oGrid. SelectionColor = - 1
oGrid. MultipleSelection = True
oGrid. FixedColumns = 2
Dim o As CommandBarControl
oGrid. ImageListAddFromPicture " monbouton " , CommandBars (" Database " ). Controls (1 ). Picture , _
CommandBars (" Database " ). Controls (1 ). Mask
oGrid. RowHeight = 40
oGrid. Refresh
End Sub
Private Sub oGrid_BeforeDrawCell (pRow As CtrlGridRowBeforeDraw, pColonne As CtrlGridColumnBeforeDraw)
Select Case pColonne. Name
Case " nb "
If pRow. Value (pColonne. Name ) < 300 Then pColonne. FillColor = vbRed Else pColonne. FillColor = vbGreen
Case " sel "
pRow. Value (" sel " ) = pRow. Selected
End Select
End Sub
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
MsgBox pRow. Value (" Nom " )
End If
End If
End Sub
|
Résultat obtenu :
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.
|