Info

Comment changer la couleur dans le composant TDBGrid

Comment changer la couleur dans le composant TDBGrid

L'ajout de couleur aux grilles de votre base de données améliorera l'apparence et différenciera l'importance de certaines lignes ou colonnes de la base de données. Pour ce faire, nous nous concentrerons sur DBGrid, qui fournit un excellent outil d’interface utilisateur pour l’affichage des données.

Nous supposerons que vous savez déjà comment connecter une base de données à un composant DBGrid. Pour ce faire, le moyen le plus simple consiste à utiliser l’assistant de formulaire de base de données. Sélectionnez le employé.db à partir de l’alias DBDemos et sélectionnez tous les champs sauf EmpNo.

Colonnes De Coloration

La première chose à faire pour améliorer visuellement l'interface utilisateur consiste à colorer des colonnes individuelles dans la grille orientée données. Pour ce faire, nous utiliserons la propriété TColumns de la grille.

Sélectionnez le composant de grille dans la fiche et appelez l'éditeur de colonnes en double-cliquant sur la propriété Columns de la grille dans l'inspecteur d'objets.

Il ne reste plus qu'à spécifier la couleur d'arrière-plan des cellules pour une colonne donnée. Pour la couleur de premier plan du texte, reportez-vous à la propriété font.

Pointe: Pour plus d'informations sur l'éditeur de colonnes, recherchez Éditeur de colonnes: création de colonnes persistantes dans vos fichiers d’aide Delphi.

Lignes de coloration

Si vous souhaitez colorer la ligne sélectionnée dans un DBGrid mais que vous ne souhaitez pas utiliser l'option dgRowSelect (car vous souhaitez pouvoir modifier les données), vous devez plutôt utiliser l'événement DBGrid.OnDrawColumnCell.

Cette technique montre comment changer dynamiquement la couleur de texte dans un DBGrid:

procédure TForm1.DBGrid1DrawColumnCell
(Expéditeur: TObject; const Rect: TRect;
DataCol: Integer; Colonne: TColumn;
Etat: TGridDrawState);
commencer
si Table1.FieldByName ('Salary'). AsCurrency> 36000 puis
DBGrid1.Canvas.Font.Color: = clMaroon;
DBGrid1.DefaultDrawColumnCell
(Rect, DataCol, Column, State);
fin;

Voici comment changer dynamiquement la couleur d’un rangée dans un DBGrid:

procédure TForm1.DBGrid1DrawColumnCell
(Expéditeur: TObject; const Rect: TRect;
DataCol: Integer; Colonne: TColumn;
Etat: TGridDrawState);
commencer
si Table1.FieldByName ('Salary'). AsCurrency> 36000 puis
DBGrid1.Canvas.Brush.Color: = clWhite;
DBGrid1.DefaultDrawColumnCell
(Rect, DataCol, Column, State);
fin;

Coloration des cellules

Enfin, voici comment changer le Couleur de fond des cellules d'une colonne particulière, plus le texte couleur de premier plan:

procédure TForm1.DBGrid1DrawColumnCell
(Expéditeur: TObject; const Rect: TRect;
DataCol: Integer; Colonne: TColumn;
Etat: TGridDrawState);
commencer
si Table1.FieldByName ('Salary'). AsCurrency> 40000 puis
commencer
DBGrid1.Canvas.Font.Color: = clWhite;
DBGrid1.Canvas.Brush.Color: = clBlack;
fin;
si DataCol = 4 puis // La 4ème colonne est 'Salaire'
DBGrid1.DefaultDrawColumnCell
(Rect, DataCol, Column, State);
fin;

Comme vous pouvez le constater, si le salaire d'un employé est supérieur à 40 000, sa cellule Salaire est affichée en noir et le texte en blanc.

Voir la vidéo: Delphi Programming Tutorial #24 - DBGrid OnDrawColumnCell (Juillet 2020).