So ändern Sie die Farbe in der TDBGrid-Komponente

Das Hinzufügen von Farben zu Ihren Datenbankrastern verbessert das Erscheinungsbild und unterscheidet die Bedeutung bestimmter Zeilen oder Spalten in der Datenbank. Zu diesem Zweck konzentrieren wir uns auf DBGrid, ein großartiges Tool für die Benutzeroberfläche zum Anzeigen von Daten.

Wir gehen davon aus, dass Sie bereits wissen, wie eine Datenbank mit einer DBGrid-Komponente verbunden wird. Der einfachste Weg, dies zu erreichen, ist die Verwendung des Datenbankformular-Assistenten. Wähle aus employee.db Wählen Sie im DBDemos-Alias ​​alle Felder außer EmpNo.

Spalten färben

Das Erste und Einfachste, was Sie tun können, um die Benutzeroberfläche visuell zu verbessern, ist, einzelne Spalten im datensensitiven Raster einzufärben. Dies erreichen wir über die Eigenschaft TColumns des Rasters.

Wählen Sie die Rasterkomponente im Formular aus und rufen Sie den Spalteneditor auf, indem Sie im Objektinspektor auf die Spalteneigenschaft des Rasters doppelklicken.

Sie müssen nur noch die Hintergrundfarbe der Zellen für eine bestimmte Spalte angeben. Informationen zur Vordergrundfarbe des Texts finden Sie in der Eigenschaft font.

Trinkgeld: Weitere Informationen zum Spalteneditor finden Sie unter Spalteneditor: Erstellen persistenter Spalten in Ihren Delphi-Hilfedateien.

Zeilen färben

Wenn Sie die ausgewählte Zeile in einem DBGrid einfärben möchten, jedoch nicht die Option dgRowSelect verwenden möchten (da Sie die Daten bearbeiten möchten), sollten Sie stattdessen das Ereignis DBGrid.OnDrawColumnCell verwenden.

Diese Technik zeigt, wie die Farbe von dynamisch geändert werden kann Text in einem DBGrid:

Verfahren TForm1.DBGrid1DrawColumnCell
(Absender: TObject; const Rect: TRect;
DataCol: Integer; Spalte: TColumn;
Zustand: TGridDrawState);
Start
wenn Table1.FieldByName ('Gehalt'). AsCurrency> 36000 dann
DBGrid1.Canvas.Font.Color: = clMaroon;
DBGrid1.DefaultDrawColumnCell
(Rect, DataCol, Column, State);
Ende;

Hier erfahren Sie, wie Sie die Farbe von a dynamisch ändern Reihein einem DBGrid:

Verfahren TForm1.DBGrid1DrawColumnCell
(Absender: TObject; const Rect: TRect;
DataCol: Integer; Spalte: TColumn;
Zustand: TGridDrawState);
Start
wenn Table1.FieldByName ('Gehalt'). AsCurrency> 36000 dann
DBGrid1.Canvas.Brush.Color: = clWhite;
DBGrid1.DefaultDrawColumnCell
(Rect, DataCol, Column, State);
Ende;

Zellen färben

Zum Schluss erfahren Sie, wie Sie das ändern Hintergrundfarbe der Zellen einer bestimmten Spalte sowie den Text Vordergrundfarbe:

Verfahren TForm1.DBGrid1DrawColumnCell
(Absender: TObject; const Rect: TRect;
DataCol: Integer; Spalte: TColumn;
Zustand: TGridDrawState);
Start
wenn Table1.FieldByName ('Gehalt'). AsCurrency> 40000 dann
Start
DBGrid1.Canvas.Font.Color: = clWhite;
DBGrid1.Canvas.Brush.Color: = clBlack;
Ende;
wenn DataCol = 4 dann // 4. Spalte ist 'Gehalt'
DBGrid1.DefaultDrawColumnCell
(Rect, DataCol, Column, State);
Ende;

Wie Sie sehen können, wird die Zelle Gehalt eines Mitarbeiters bei einem Gehalt von mehr als 40.000 schwarz und der Text weiß angezeigt.