Mit dem Quellcode ist das nicht so einfach, da meine
unit ca.
600 Zeilen Code umfaßt. Dabei habe ich diverse Routinen, die
Zellen neu belegen und ein Update auslösen, deswegen kann ich
nicht genau eingrenzen, woran es lag.
Wenn ich OnDrawCell mit stringGrid.Update anstoße, werden aber
offensichtlich nur die Zellen neu gezeichnet, die sich auch
tatsächlich geändert haben und nicht alle sichtbaren.
Habe es ähnlich gelöst, wie in deinem Vorschlag. Kann nur leider
nicht mit den Cols arbeiten, da sich immer an anderer Stelle Zeichen
ändern und nur diese andersfarbig werden sollen.
Code:
procedure Tfrm_simulation.sg_simulationDrawCell(Sender: TObject; ACol,
ARow: Integer; Rect: TRect; State: TGridDrawState);
begin
//geaendertes Zeichen wird farbig gekennzeichnet
if flagZeichenAendern then
with sg_simulation.Canvas do
begin
//brush.color:=clfuchsia; //Hintergrundfarbe
//fillrect(rect); //Hintergrund neu fuellen
Font.Color := clRed; //Schriftfarbe
Textout(Rect.Left + 2, Rect.Top + 2, sg_simulation.Cells[ACol, ARow]);
end; //if
end; OnDrawCell
Wie gesagt, durch ein Umstellen der Zeilen bzw. einzelnen Aufrufe (oder
was auch immer ich sonst jetzt anders mache), erziele ich inzwischen das
gewünschte Ergebnis.
Du brauchst also erstmal nicht weiter nach der Nadel suchen
.
Gute Nacht, Tigger