Einzelnen Beitrag anzeigen

rokli

Registriert seit: 21. Mär 2009
Ort: Rödinghausen
297 Beiträge
 
Delphi 10.4 Sydney
 
#8

AW: DevExpress TcxGrid Zeilen einfärben

  Alt 25. Aug 2020, 11:41
Hallo und vielen Dank für die Tipps.

Wenn man mit einer "manuellen" Einstellung arbeiten will, kann man das so machen:

Delphi-Quellcode:
procedure TfrmMain.cxGrid1DBTableView1CustomDrawCell(
  Sender: TcxCustomGridTableView; ACanvas: TcxCanvas;
  AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean);
{-----------------------------------------------------------------------------------------------------------------------
   Farbeinstellungen im DevExpress TcxGrid
   sind Spalten und Zeilen aktiv, wird die letzte Einstellung verwendet
-----------------------------------------------------------------------------------------------------------------------}

var
   clBkHell         : TColor;
   clTxHell         : Tcolor;
   clBkDunkel      : TColor;
   clTxDunkel : TColor;
   clBkCursor      : TColor;
   clTxCursor    : TColor;
begin
   clBkHell         := clWebCornSilk;
   clTxHell         := clBlack;
   clBkDunkel      := clWebWheat;
   clTxDunkel      := clBlack;
   clBkCursor      := clNavy;
   clTxCursor      := clWhite;

// Spalten
{   with AViewInfo.GridRecord do begin
      if Odd(AViewInfo.Item.ID) then begin// bei ungerader Spaltenzahl
         ACanvas.FillRect(AViewInfo.Bounds, clBkDunkel);   // RootLookAndFeel.Painter.DefaultContentOddColor );
         ACanvas.Font.Color := clTxDunkel;
      end
      else begin
         ACanvas.FillRect(AViewInfo.Bounds, clBkHell); // RootLookAndFeel.Painter.DefaultContentEvenColor );
         ACanvas.Font.Color := clTxHell;
      end;
   end;
}

   // Zeilen
   if Odd(AViewInfo.GridRecord.RecordIndex) then begin
      ACanvas.FillRect(AViewInfo.Bounds, clBkDunkel);   // RootLookAndFeel.Painter.DefaultContentOddColor );
      ACanvas.Font.Color := clTxDunkel;
   end
   else begin
      ACanvas.FillRect(AViewInfo.Bounds, clBkHell); // RootLookAndFeel.Painter.DefaultContentEvenColor );
      ACanvas.Font.Color := clTxHell;
   end;

   // Cursor Zeile
   if AViewInfo.Selected then begin
      ACanvas.FillRect(AViewInfo.Bounds, clBkCursor); // RootLookAndFeel.Painter.DefaultContentOddColor );
      ACanvas.Font.Color := clTxCursor;
   end;
end;
Das funktioniert immer dann gut, wenn Skins und Styles nicht eingesetzt werden.
Rolf
wenn nicht anders angegeben, schreibe ich zu D7, XE2 und MS SQL - ansonsten fragen Sie ihren Administrator oder einen Operator. Update 06/2020: Delphi 10.4 Sydney
  Mit Zitat antworten Zitat