Hola JXJ.
Si no te entiendo mál, una manera puede ser almacenar en dos cadenas (asignables de donde gustes) los valores de columnas y filas para hacer la posterior evaluación en el evento
OnDrawCell.
Algo como por ejemplo:
Código Delphi
[-]
...
var
ColStr: string = '2,3,5'; RowStr: string = '1,2,3,4,5';
...
procedure TForm1.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
Rect: TRect; State: TGridDrawState);
var
R: TRect;
v: Double;
begin
with TStringGrid(Sender) do
begin
if (Pos(IntToStr(ACol), ColStr) > 0) and (Pos(IntToStr(ARow), RowStr) > 0)
and TryStrToFloat(Cells[ACol,ARow], v) then
begin
if (v = 0) then begin
Canvas.Brush.Color:= clRed;
Canvas.Font.Color:= clWhite;
end
else begin
Canvas.Brush.Color:= clLime;
Canvas.Font.Color:= clBlack;
end;
Canvas.FillRect(Rect);
Canvas.TextOut(Rect.Left+1, Rect.Top+1, Cells[ACol,ARow]);
end;
end;
end;
Saludos.