以下是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中又怎么表示??
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中又怎么表示??
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;呵呵!这是这个版的各位高手教我的,自己改过一下,算是取之于民用之于民吧!先凑合着用!
不过wilsonlee的也不错