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.Repaint或MyStringGrid.Invalidate
。
我想要:如果布尔变量将设置为真,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.Repaint或MyStringGrid.Invalidate
。