在用DBGrid显示记录时,如何通过第一个字段“状态”的值(有两种值,未到和已到),来显示这条记录中某个对应字段的颜色??
就是如果是已到则本记录的一个字段颜色为红色,如果未到,则另一个字段为红色,例如:
状态 到达时间 离开时间
已到 18:00 20:00
未到 22:00 24:00
这种情况是第一条记录的20:00为红色,第二条记录的22:00为红色。请问高手如何才能实现呢???
就是如果是已到则本记录的一个字段颜色为红色,如果未到,则另一个字段为红色,例如:
状态 到达时间 离开时间
已到 18:00 20:00
未到 22:00 24:00
这种情况是第一条记录的20:00为红色,第二条记录的22:00为红色。请问高手如何才能实现呢???
Field: TField; State: TGridDrawState);
begin
if Table1.Fieldbyname(′状态′).value='未到'
then
DBGrid1.Columns[0].Color:=ClRed
else
DBGrid1.Columns[0].Color:=ClBlue;
DBGrid1.Columns[0]是你要变颜色的那个列,不过有点疑问
已到则本记录的一个字段颜色为红色,如果未到,则另一个字段为红色,
都是红色干吗啊:)
procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject;
const Rect: TRect; DataCol: Integer; Column: TColumn;
State: TGridDrawState);
begin
if Query1.FieldByName('状态').AsString='未到'then
if (UpperCase(Column.Fieldname)='到达时间') then
DBGrid_Plan.canvas.Font.color:=clred
else
if UpperCase(Column.Fieldname)='离开时间' then
DBGrid_Plan.Canvas.Font.Color:=clred;
DBGrid1.DefaultDrawColumnCell(Rect,DataCol,Column,State);
end;