在StringGrid的OnDrawCell事件中重绘 procedure TForm1.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer; Rect: TRect; State: TGridDrawState); var Mysg:TStringGrid; begin Mysg := TStringGrid(Sender); if (ACol=3)and(ARow>0) then begin //重绘第 4 列及第 2 行以后 if (Mysg.Cells[3,ARow] = '从未订阅') then begin Mysg.Canvas.Brush.Color:=TColor($0090A0AF); end else if (Mysg.Cells[3,ARow] = '已订阅未审核') then begin Mysg.Canvas.Brush.Color:=clBlue; end else if (Mysg.Cells[3,ARow] = '失效(超期)') then begin Mysg.Canvas.Brush.Color:=clRed; end else if (Mysg.Cells[3,ARow] = '已审核') then begin Mysg.Canvas.Brush.Color:=clGreen; end else if (Mysg.Cells[3,ARow] = '未知') then Mysg.Canvas.Brush.Color:=clRed; Mysg.Canvas.Font.Color := clWhite; Mysg.Canvas.FillRect(Rect); Mysg.Canvas.TextOut(Rect.Left,Rect.Top,Mysg.Cells[ACol,ARow]); end; end;
procedure TForm1.StringGrid1DrawCell(Sender: TObject; ACol,
ARow: Integer; Rect: TRect; State: TGridDrawState);
var Mysg:TStringGrid;
begin
Mysg := TStringGrid(Sender);
if (ACol=3)and(ARow>0) then begin //重绘第 4 列及第 2 行以后
if (Mysg.Cells[3,ARow] = '从未订阅') then begin
Mysg.Canvas.Brush.Color:=TColor($0090A0AF);
end else if (Mysg.Cells[3,ARow] = '已订阅未审核') then begin
Mysg.Canvas.Brush.Color:=clBlue;
end else if (Mysg.Cells[3,ARow] = '失效(超期)') then begin
Mysg.Canvas.Brush.Color:=clRed;
end else if (Mysg.Cells[3,ARow] = '已审核') then begin
Mysg.Canvas.Brush.Color:=clGreen;
end else if (Mysg.Cells[3,ARow] = '未知') then
Mysg.Canvas.Brush.Color:=clRed;
Mysg.Canvas.Font.Color := clWhite;
Mysg.Canvas.FillRect(Rect);
Mysg.Canvas.TextOut(Rect.Left,Rect.Top,Mysg.Cells[ACol,ARow]);
end;
end;