Mal so ganz grundsätzlich
Auf einem Drawgrid zeichnet man nur aus dem Event
OnDrawCell heraus.
Wenn man direkt auf das Grid zeichnet (also ausserhalb des Events), kann der Refresh des Drawgrids nicht richtig funktionieren.
Das analoge Prinzip gilt übrigens auch für die TPaintbox.
Wenn ein DrawGrid gezeichnet wird, dann ruft es für jede einzelne Zelle einmal OnDrawCell auf (natürlich nicht jedesmal für alle Zellen, sondern nur für diejenigen, die auch tatsächlich neu gezeichnet werden müssen). Man muss den Inhalt einer Zelle also im OnDrawCell Ereignis zeichnen, nicht vorher und nicht nachher.
Hier ein Beispiel von Embacadero:
http://docwiki.embarcadero.com/CodeS...l_%28Delphi%29