delphi 7:如何根据布尔变量的状态更新 StringGrid 单元格的颜色依赖性

delphi 7: How to update StringGrid cells color dependence on a state of boolean variable

我想要:如果布尔变量将设置为真,StringGrid 中的单元格(错误消息)是否应该为红色。它不会自动与 OnDrawCell 一起工作。 我怎样才能实现它?提前致谢。

OnDrawCell 事件中,检查布尔变量的状态,如果要绘制正确的单元格,则将颜色设置为红色。

delphi : how can I change color of a cell in string grid

procedure TForm1.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;  Rect: TRect; State: TGridDrawState);
begin
  if (myBooleanState) and (ACol = 3) and (ARow = 2) then
    with TStringGrid(Sender) do
    begin
      //paint the background red
      Canvas.Brush.Color := clRed;
      Canvas.FillRect(Rect);
      Canvas.TextOut(Rect.Left+2,Rect.Top+2,Cells[ACol, ARow]);
    end;
end;

当布尔值的状态改变时,只需调用MyStringGrid.RepaintMyStringGrid.Invalidate