刚才发过贴了,可能写的模糊了,现在详细如下:
DBGridEh1中根据奇偶行来改变颜色,我写的程序如下:
procedure TFrmEditTR_stQuota.DBGridEh1DrawColumnCell(Sender: TObject;
const Rect: TRect; DataCol: Integer; Column: TColumnEh;
State: TGridDrawState);
begin
if ((FDmdTranMaster as TDmdTR_stQuota).QrySecond.RecNo mod 2) = 1 then
begin
DBGridEh1.Canvas.Brush.Color := $00FF0000;
end
else
begin
DBGridEh1.Canvas.Brush.Color := $00FFFFC1;
end;
DBGridEh1.DefaultDrawColumnCell(rect, datacol, column, state);
end;先在的问题是不管奇偶行都是一个颜色,怎么办啊???求救啊,不染不能下班拉
DBGridEh1中根据奇偶行来改变颜色,我写的程序如下:
procedure TFrmEditTR_stQuota.DBGridEh1DrawColumnCell(Sender: TObject;
const Rect: TRect; DataCol: Integer; Column: TColumnEh;
State: TGridDrawState);
begin
if ((FDmdTranMaster as TDmdTR_stQuota).QrySecond.RecNo mod 2) = 1 then
begin
DBGridEh1.Canvas.Brush.Color := $00FF0000;
end
else
begin
DBGridEh1.Canvas.Brush.Color := $00FFFFC1;
end;
DBGridEh1.DefaultDrawColumnCell(rect, datacol, column, state);
end;先在的问题是不管奇偶行都是一个颜色,怎么办啊???求救啊,不染不能下班拉
procedure TfrmEhlib.dgeStoreDrawColumnCell(Sender: TObject;
const Rect: TRect; DataCol: Integer; Column: TColumnEh;
State: TGridDrawState);
begin
if Odd(aqStore.RecNo + 1) then
begin
dgeStore.Canvas.Brush.Color := clCream;
dgeStore.Canvas.Font.Color := clNavy;
end;
if (Rect.Top = (dgeStore.CellRect(dgeStore.Col, dgeStore.row).Top))
and not (gdFocused in State) then
dgeStore.Canvas.Brush.Color := $00FFBB95; dgeStore.DefaultDrawColumnCell(Rect, DataCol, Column, State);
end;
begin
with (Sender as TDbGrideh).Canvas do
begin
Brush.Color:=$00FFFFC1;
FillRect(Rect);
end;
end;
(Sender as TDbGrideh).DefaultDrawColumnCell(Rect,DataCol,Column,State);
const Rect: TRect; DataCol: Integer; Column: TColumnEh;
State: TGridDrawState);
begin
if (QrySecond.RecNo mod 2)=1 then
begin
DBGridEh1.Canvas.Brush.Color := $00FF0000;
end
else
begin
DBGridEh1.Canvas.Brush.Color := $00FFFFC1;
end;
DBGridEh1.DefaultDrawColumnCell(rect, datacol, column, state);
end;
改为
if (QrySecond.RecNo mod 2)=1 then
DataCol: Integer; Column: TColumn; State: TGridDrawState);
Var
Row : integer;
begin
Row := DBGrid1.DataSource.DataSet.RecNo;
If (Row mod 2)<>0 Then
DBGrid1.Canvas.Brush.Color:=clMoneyGreen;
DBGrid1.DefaultDrawColumnCell(Rect,DataCol,Column,State);
end;
DataCol: Integer; Column: TColumn; State: TGridDrawState);
Var
Row : integer;
begin
Row := DBGrid1.DataSource.DataSet.RecNo;
If (Row mod 2)<>0 Then
DBGrid1.Canvas.Brush.Color:=$00FF0000;
Else
DBGrid1.Canvas.Brush.Color:=$00FFFFC1;
DBGrid1.DefaultDrawColumnCell(Rect,DataCol,Column,State);
end;
你看可以了吗?