$00F2F2F1 和 clWhite 差不多吧?
如果 256 色就是一样的了,两台机器都是 16位色以上吗?

解决方案 »

  1.   

    先试一下$00F2F2F1在你的系统中能不能显示,如果能应该没有问题.
      

  2.   

    不是啊, 哪怕我不用$00F2F2F1 而用clred代替也是一样只有一个白色出现。
      

  3.   

    DataSource.DataSet.RecNo mod 2 <> 0 我在程序中看到它的值等于-1是怎么回事????
      

  4.   

    与数据库有关。如果用的是Access数据库就会有这个问题。
      

  5.   

    以下是我的一个控件,拷贝下来然后安装Component即可!
    unit DBColorRowGrid;interfaceuses
      Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
      Grids, DBGrids, db;type
      TDBColorRowGrid = class(TDBGrid)
      private
        FNextColor: TColor;
        FNextFontColor: TColor;
        
        procedure SetNextColor(const Value: TColor);
        procedure SetNextFontColor(const Value: TColor);
      protected
        procedure DrawColumnCell( const Rect: TRect; DataCol: Integer;
          Column: TColumn; State: TGridDrawState); override;
      public
        constructor Create(AOwner: TComponent); override;
      published
        property NextColor: TColor read FNextColor write SetNextColor;
        property NextFontColor: TColor read FNextFontColor write SetNextFontColor;
      end;procedure Register;implementationprocedure Register;
    begin
      RegisterComponents('Data Controls', [TDBColorRowGrid]);
    end;{ TDBColorRowGrid }constructor TDBColorRowGrid.Create(AOwner: TComponent);
    begin
      inherited;
      FNextColor := $00F4FFFE;
      FNextFontColor := Font.Color;
    end;procedure TDBColorRowGrid.DrawColumnCell(const Rect: TRect; DataCol: Integer;
      Column: TColumn; State: TGridDrawState);
    var
      ARow: integer;
    begin
      ARow := Rect.Top div (DefaultRowHeight + 1);
      Canvas.Font.Assign(Font);  with Canvas do
      begin
        if ARow mod 2 = 0 then Brush.Color := FNextColor
        else Brush.Color := Color;    if DataCol mod 2 = 1 then Font.Color := FNextFontColor; 
      end;  Canvas.FillRect(Rect);
      DefaultDrawColumnCell(Rect, DataCol, Column, State);
    end;procedure TDBColorRowGrid.SetNextColor(const Value: TColor);
    begin
      if FNextColor = Value then exit;  FNextColor := Value;
      invalidate;
    end;procedure TDBColorRowGrid.SetNextFontColor(const Value: TColor);
    begin
      if FNextFontColor = Value then exit;  FNextFontColor := Value;
      Invalidate; 
    end;end.