Hab mir das ersetzen gerade noch mal angeschaut. Du könntest alternativ auch folgendes verwenden:
Delphi-Quellcode:
var
spalte : TStrings;
begin
spalte := StringGrid1.cols[2]; // die 3. Spalte
StringReplace(spalte.Text,'grün','rot',[rfReplaceAll])
end;
Musst mal ausprobieren, was schneller ist. Bei obigem Code könntest du [rfReplaceAll] auch durch [rfReplaceAll,rfIgnoreCase] ersetzen, dann wäre Groß-/Kleinschreibung irrelevant. Er würde also nicht nur "grün" ersetzen, sondern auch "Grün", "gRün", "GRün", "grÜn" usw.
[edit1]
Allerdings würde bei dieser Variante auch ersetzt, wenn mehr in der Zelle steht. Also würde "Der Baum ist grün" zu "Der Baum ist rot".
[/edit1]