在DELPHI中如何动态改变DBGRID的颜色?

解决方案 »

  1.   

    procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject; const Rect:TRect;DataCol: Integer; Column: TColumn; State: TGridDrawState);begin if Table1.FieldByName('Population').AsInteger > 20000000 thenDBGrid1.Canvas.Font.Color := clBlue;DBGrid1.DefaultDrawColumnCell(Rect, DataCol, Column, State);end;看看就明白了
      

  2.   

    斑马线效果: DBGXSDD.Canvas.Pen.Mode:=pmmask;
       with DBGXSDD do
       begin
       if ((State = [gdSelected]) or (State=[gdSelected,gdFocused])) then
        begin
         Canvas.Font.Color :=ClYellow;
         Canvas.Brush.Color :=ClNavy;
        end
        else
        begin
          if  datamoduleerp.ADOQCPDDLIST.RecNo mod 2<>0 then  {判断当前数据是奇数还是偶数行}
              Canvas.brush.Color :=ClWhite        {如果是奇数行,DBGrid背景以白色显示}
          else
            Canvas.brush.Color :=$00EAEAEA;      {如果是偶数行,DBGrid背景以浅灰色显示}
        end;
        DBGXSDD.DefaultDrawColumnCell(Rect,DataCol,Column,State);