Mein's war nur als Anregung gedacht. Du solltest das nutzen, um die Funktion UnterschiedFeststellen von DeddyH anzupassen, falls nicht die Zelle mit der in der Reihe davor, sondern falls die ganze Zeile mit der ganzen Zeile davor verglichen werden soll (so hatte ich deine Anforderung verstanden). Wenn ich das natürlich falsch aufgefasst habe, vergiss den Vorschlag.
Sehe gerade, du willst immer Spalte 2 testen, wo wahrschl. die ID oder so steht??? Dann die Funktion von DeddyH beibehalten.
Zum Farbwechsel: Hab kein Delphi gerade, daher ungetestet, habs mir so vorgestellt, k.A. ob das so geht:
Delphi-Quellcode:
//[...]
else
if UnterschiedFeststellen(2, ARow) then //Farbwechsel
Begin
if canvas.Brush.Color = clWhite then canvas.Brush.Color := clBlack
else canvas.Brush.Color := clWhite;
end
else
Begin
//Mach nix, sprich Farbe beibehalten
end
Canvas.FillRect(Rect);
Canvas.TextOut(Rect.Left + 2, Rect.Top + 2, StringGrid1.Cells[ACol, ARow]
Nachtrag: Den "//Mach nix"-Zweig sollte man natürlich weglassen, war nur zur Verdeutlichung.
Ich weiß halt nicht ob "if canvas.Brush.Color = clWhite" so geht, sprich, ob man sehen kann, welches die aktuelle Farbe ist. Falls nicht, musst du dir den jeweiligen Zusatand in einer variablen selber merken.