...Felder eines TDBGrids einfärben?

Autor: Chr.Rosenkranz
Homepage: http://www.christian-rosenkranz.de

Kategorie: Datenbanken

// Function to color a DBGrid (declared as private)
// Funktion zum Einfärben des DBGrids (als private deklariert)

procedure TForm1.ColorGrid(dbgIn: TDBGrid; qryIn: TQuery; const Rect: TRect;
  DataCol: Integer; Column: TColumn;
  State: TGridDrawState);
var 
  
iValue: LongInt;
begin
  
// color only the first field
  // nur erstes Feld einfärben
  
if (DataCol = 0) then
  begin
    
// Check the field value and assign a color
    // Feld-Wert prüfen und entsprechende Farbe wählen
    
iValue := qryIn.FieldByName('HINWEIS_COLOR').AsInteger;
    case iValue of
      
1: dbgIn.Canvas.Brush.Color := clGreen;
      2: dbgIn.Canvas.Brush.Color := clLime;
      3: dbgIn.Canvas.Brush.Color := clYellow;
      4: dbgIn.Canvas.Brush.Color := clRed;
    end;
    // Draw the field
    // Feld zeichnen
    
dbgIn.DefaultDrawColumnCell(Rect, DataCol, Column, State);
  end;
end;

procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject;
  const Rect: TRect; DataCol: Integer; Column: TColumn; State: TGridDrawState);
begin
  
ColorGrid(DBGrid1, Query1, Rect, DataCol, Column, State);
end;

 

printed from
www.swissdelphicenter.ch
developers knowledge base