就是我现在只想把单元格的颜色改变,下面代码是把整行的颜色都修改了,请问应该怎么修改呢?
procedure TForm1.DBGridEh1DrawColumnCell(Sender: TObject;
const Rect: TRect; DataCol: Integer; Column: TColumnEh;
State: TGridDrawState);
var
CTime:STRING;
GTime:STRING;
begin
CTime:='09:10';
GTime:='17:30';
if adoQuery1.FieldByName('ComeTime').AsString >= CTime then
DBGridEh1.canvas.Font.color:=clred;
if adoQuery1.FieldByName('ComeTime').AsString = '' then
DBGridEh1.canvas.Font.color:=clred;
if adoQuery1.FieldByName('GoTime').AsString <= GTime then
DBGridEh1.Canvas.Font.Color:=clBLUE;
if adoQuery1.FieldByName('GoTime').AsString = '' then
DBGridEh1.Canvas.Font.Color:=clBLUE;
DBGridEh1.DefaultDrawColumnCell(Rect,DataCol,Column,State);
end;
procedure TForm1.DBGridEh1DrawColumnCell(Sender: TObject;
const Rect: TRect; DataCol: Integer; Column: TColumnEh;
State: TGridDrawState);
var
CTime:STRING;
GTime:STRING;
begin
CTime:='09:10';
GTime:='17:30';
if adoQuery1.FieldByName('ComeTime').AsString >= CTime then
DBGridEh1.canvas.Font.color:=clred;
if adoQuery1.FieldByName('ComeTime').AsString = '' then
DBGridEh1.canvas.Font.color:=clred;
if adoQuery1.FieldByName('GoTime').AsString <= GTime then
DBGridEh1.Canvas.Font.Color:=clBLUE;
if adoQuery1.FieldByName('GoTime').AsString = '' then
DBGridEh1.Canvas.Font.Color:=clBLUE;
DBGridEh1.DefaultDrawColumnCell(Rect,DataCol,Column,State);
end;
DBGridEh1.DefaultDrawColumnCell(Rect,DataCol,Column,State);
Column: TColumnEh; AFont: TFont; var Background: TColor;
State: TGridDrawState);
begin
if Voyages.RecordCount<=0 then Exit; if column.FieldName='VoyStatus' then
begin
if DBGridEh1.Fields[column.Index].AsString='D' then
Background:=clRed
else if DBGridEh1.Fields[column.Index].AsString='T' then
Background:=clYellow
else
Background:=clGreen
end
else if column.FieldName='V_ShipId' then
begin
AFont.Color :=clWhite;
RzColorPicker1.SelColorIndex := Voyages.Fieldbyname('ShipId').AsInteger;
Background :=RzColorPicker1.SelectedColor;
end
else if column.FieldName='V_CompanyName' then
begin
if Trim(Voyages.Fieldbyname('V_Company').AsString)='' then Exit;
AFont.Color :=clWhite;
RzColorPicker1.SelColorIndex := Voyages.Fieldbyname('V_Company').AsInteger;
Background :=RzColorPicker1.SelectedColor;
end
else if column.FieldName='V_RouteId' then
begin
if Trim(Voyages.Fieldbyname('RouteId').AsString)='' then Exit;
AFont.Color :=clWhite;
RzColorPicker1.SelColorIndex := Voyages.Fieldbyname('RouteId').AsInteger;
Background :=RzColorPicker1.SelectedColor;
end
{else if column.FieldName='V_Entrances' then
begin
if Trim(Voyages.Fieldbyname('EntranceId').AsString)='' then Exit;
AFont.Color :=clWhite;
RzColorPicker1.SelColorIndex := Voyages.Fieldbyname('EntranceId').AsInteger;
Background :=RzColorPicker1.SelectedColor;
end }
end;