以下是BCB的控件DBGrid显示颜色的代码
void __fastcall TfrmManageSubTable::DBGrid1DrawColumnCell(TObject *Sender,
  const TRect &Rect, int DataCol, TColumn *Column,
  TGridDrawState State)
{
if(State.Contains(gdSelected))
return; if (dm->ADOtbl->RecNo % 2 == 0)
DBGrid1->Canvas->Brush->Color = clInfoBk;
else
DBGrid1->Canvas->Brush->Color = clWindow; DBGrid1->DefaultDrawColumnCell(Rect, DataCol, Column, State);
}其中State.Contains(gdSelected)如何转换成Delphi的??
BCB的"."在Delphi中又怎么表示??

解决方案 »

  1.   

    procedure TFormcheck.DBGrid1DrawColumnCell(Sender: TObject;
      const Rect: TRect; DataCol: Integer; Column: TColumn;
      State: TGridDrawState);
    begin
      if( gdSelected in State)then
      //如果是被选中的
      begin
        DBGrid1.Canvas.Brush.Color:=clblue;
        //选中的背景色为clBlue
        DBGrid1.Canvas.Font.Color:=clYellow;
        //选中的字体颜色为clYellow
        //self.DBGrid1.Hint:='test';
        showhint:=true;
      end
      else
      begin
      if self.DBGrid1.datasource.dataset.fieldbyname('affair_level').AsString='1' then
      begin
      DBGrid1.Canvas.Font.Color :=clyellow;
      DBGrid1.Canvas.Brush.Color:=clltgray;
      DBGrid1.DefaultDrawColumnCell(Rect, DataCol, Column, State);
      end
      else
      if self.DBGrid1.datasource.dataset.fieldbyname('affair_level').AsString='0' then
      begin
      dbgrid1.canvas.font.color:=clred;
      DBGrid1.Canvas.Brush.Color:=clltgray;
      dbgrid1.defaultdrawcolumncell(rect,datacol,column,state);
      end;
      end;
      DBGrid1.DefaultDrawcolumnCell(rect,DataCol,Column,State);end;呵呵!这是这个版的各位高手教我的,自己改过一下,算是取之于民用之于民吧!先凑合着用!
      

  2.   

    xyc189()给出重点,只能给他多点分
    不过wilsonlee的也不错