我使用TDrawGrid组件绘制网格。 46Y x 70X



如果我选择一个单元格,它将用clGrey上色,如果再次选择它,它将再次用白色上色。我想计算所有clGrey色细胞。

我的以下代码是我尝试过的,但是没有奏效。

procedure TForm2.RasterDrawGridSelectCell(Sender: TObject; ACol, ARow: Integer;
  var CanSelect: Boolean);
begin
  UniversumsMatrix[ACol, ARow] := not UniversumsMatrix[ACol, ARow];

    begin
    if RasterDrawGrid.Brush.Color = clGrey then begin
      Zellenstand := Zellenstand - 1
    end
    else
      Zellenstand := Zellenstand +1 ;
  end;
end;

procedure TForm2.RasterDrawGridDrawCell(Sender: TObject; ACol, ARow: Integer;
  Rect: TRect; State: TGridDrawState);
begin
  if UniversumsMatrix[ACol, ARow] then
    RasterDrawGrid.Canvas.Brush.Color := clGray // Grauer der lebendigen Hintergrund
  else
    RasterDrawGrid.Canvas.Brush.Color := clWhite; // Weißer Hintergrund
    RasterDrawGrid.Canvas.FillRect(Rect);
end;

最佳答案

处理计数器的更有效方法是将数组包装在具有相应setter和getter的类中,并且仅通过setter和getter访问数组。

关于delphi - 如何计算DrawGrid中的彩色单元格?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18585874/

10-08 21:25