Das kann z.B. mit den Objects eures StringGrids machen, ist aber nicht optimal. Eigentlich sollten Logik und Darstellung nicht vermischt werden.
Delphi-Quellcode:
procedure TForm1.MyStringGridDrawCell(Sender: TObject; ACol, ARow: Integer;
Rect: TRect; State: TGridDrawState);
begin
with (Sender as TStringGrid) do
begin
if Objects[ACol, ARow] <> nil then
begin
Canvas.Brush.Color := TColor(Objects[ACol, ARow]);
Canvas.Font.Color := clBlack;
end;
Canvas.TextOut(Rect.Left + 2, Rect.Top + 2, Cells[ACol, ARow]);
end
end;
procedure CheckBedingung1(AStringGrid: TStringGrid; .. );
var
Col, Row: integer;
begin
for Col := AStringGrid.FixedCols to AStringGrid.ColCount - 1 do
for Row := AStringGrid.FixedRows to AStringGrid.RowCount - 1 do
if Bedingung1(AStringGrid) then
AStringGrid.Objects[Col, Row] := Pointer(clInfoBK)
else
AStringGrid.Objects[Col, Row] := nil;
AStringGrid.Invalidate;
end;