Door kleur toe te voegen aan uw database-rasters wordt het uiterlijk verbeterd en wordt het belang van bepaalde rijen of kolommen in de database gedifferentieerd. We doen dit door ons te concentreren op DBGrid, dat een geweldig hulpmiddel voor gebruikersinterfaces biedt voor het weergeven van gegevens.
We gaan ervan uit dat u al weet hoe u een database kunt verbinden met een DBGrid-component. De eenvoudigste manier om dit te bereiken is door de wizard Databaseformulier te gebruiken. Selecteer de employee.db uit de DBDemos-alias en selecteer alle velden behalve empno.
Het eerste en eenvoudigste wat u kunt doen om de gebruikersinterface visueel te verbeteren, is het kleuren van afzonderlijke kolommen in het gegevensbewuste raster. We zullen dit bereiken via de TColumns-eigenschap van het netwerk.
Selecteer de rastercomponent in het formulier en roep de Kolomeditor op door te dubbelklikken op de eigenschap Kolommen van het raster in Object Inspector.
Het enige dat u nog moet doen, is de achtergrondkleur van de cellen voor een bepaalde kolom opgeven. Voor de voorgrondkleur van de tekst, zie de eigenschap font.
Tip: Zoek naar meer informatie over de Kolomeditor Kolomeditor: blijvende kolommen maken in uw Delphi-helpbestanden.
Als u de geselecteerde rij in een DBGrid wilt kleuren maar u de optie dgRowSelect niet wilt gebruiken (omdat u de gegevens wilt kunnen bewerken), moet u in plaats daarvan de gebeurtenis DBGrid.OnDrawColumnCell gebruiken..
Deze techniek laat zien hoe je de kleur van dynamisch kunt veranderen tekst in een DBGrid:
procedure TForm1.DBGrid1DrawColumnCell
(Afzender: TObject; const Rect: TRect;
DataCol: geheel getal; Kolom: TColumn;
Staat: TGridDrawState);
beginnen
als Table1.FieldByName ( 'Salaris'). AsCurrency> 36000 vervolgens
DBGrid1.Canvas.Font.Color: = clMaroon;
DBGrid1.DefaultDrawColumnCell
(Rect, DataCol, Column, State);
einde;
Hier leest u hoe u de kleur van een dynamisch kunt veranderen rijin een DBGrid:
procedure TForm1.DBGrid1DrawColumnCell
(Afzender: TObject; const Rect: TRect;
DataCol: geheel getal; Kolom: TColumn;
Staat: TGridDrawState);
beginnen
als Table1.FieldByName ( 'Salaris'). AsCurrency> 36000 vervolgens
DBGrid1.Canvas.Brush.Color: = clWhite;
DBGrid1.DefaultDrawColumnCell
(Rect, DataCol, Column, State);
einde;
Eindelijk, hier is hoe het te veranderen Achtergrond kleur van de cellen van een bepaalde kolom, plus de tekst voorgrondkleur:
procedure TForm1.DBGrid1DrawColumnCell
(Afzender: TObject; const Rect: TRect;
DataCol: geheel getal; Kolom: TColumn;
Staat: TGridDrawState);
beginnen
als Table1.FieldByName ( 'Salaris'). AsCurrency> 40000 vervolgens
beginnen
DBGrid1.Canvas.Font.Color: = clWhite;
DBGrid1.Canvas.Brush.Color: = clBlack;
einde;
als DataCol = 4 vervolgens // 4e kolom is 'Salaris'
DBGrid1.DefaultDrawColumnCell
(Rect, DataCol, Column, State);
einde;
Zoals u kunt zien, als het salaris van een werknemer hoger is dan 40 duizend, wordt de cel van het salaris weergegeven in zwart en wordt de tekst in wit weergegeven.