procedure TForm1.DBGridEh1DrawDataCell(Sender: TObject; const Rect: TRect;
Field: TField; State: TGridDrawState);
begin
if adoQuery1.FieldByName('ComeTime').AsString >= '09:10' then
DBGridEh1.canvas.Font.color:=clred;
if adoQuery1.FieldByName('GoTime').AsString <= '17:30' then
DBGridEh1.Canvas.Font.Color:=clGreen;
DBGridEh1.DefaultDrawColumnCell(Rect,DataCol,Column,State);
end;
红色错误,提示:[Error] Unit1.pas(146): Undeclared identifier: 'DataCol'
Field: TField; State: TGridDrawState);
begin
if adoQuery1.FieldByName('ComeTime').AsString >= '09:10' then
DBGridEh1.canvas.Font.color:=clred;
if adoQuery1.FieldByName('GoTime').AsString <= '17:30' then
DBGridEh1.Canvas.Font.Color:=clGreen;
DBGridEh1.DefaultDrawColumnCell(Rect,DataCol,Column,State);
end;
红色错误,提示:[Error] Unit1.pas(146): Undeclared identifier: 'DataCol'
const Rect: TRect; DataCol: Integer; Column: TColumnEh;
State: TGridDrawState);
begin
if oraQuery1.FieldByName('b').AsString ='d' then
DBGridEh1.canvas.Font.color:=clred
else
DBGridEh1.Canvas.Font.Color:=clGreen;
DBGridEh1.DefaultDrawColumnCell(Rect,DataCol,Column,State);
end;是这个事件DrawColumnCell
Field: TField; State: TGridDrawState);
begin
if oraQuery1.FieldByName('b').AsString ='d' then
DBGridEh1.canvas.Font.color:=clred
else
DBGridEh1.Canvas.Font.Color:=clGreen;
DBGridEh1.DefaultDrawDataCell(Rect,Field,State);
end;
procedure TForm1.DBGridEh1DrawDataCell(Sender: TObject; const Rect: TRect;
Field: TField; State: TGridDrawState);
begin
if adoQuery1.FieldByName('ComeTime').AsString >= '09:10' then
DBGridEh1.canvas.Font.color:=clred;
if adoQuery1.FieldByName('GoTime').AsString <= '17:30' then
DBGridEh1.Canvas.Font.Color:=clGreen;
DBGridEh1.DefaultDrawDataCell(Rect,Field,State);
end;
adoQuery1.FieldByName('ComeTime').AsString >= '09:10'比较的问题
检查一下不行用strtotime转换一下再比较
procedure TForm1.DBGridEh1DrawDataCell(Sender: TObject; const Rect: TRect;
Field: TField; 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('GoTime').AsString <= GTime then
DBGridEh1.Canvas.Font.Color:=clGreen;
DBGridEh1.DefaultDrawDataCell(Rect,Field,State);
end;