Sorry, sorry, sorry
Das war ein wenig schusselig von mir. Die Typecasts sind falsch. Richtig ist:
Delphi-Quellcode:
StringGrid1.Objects[ACol,ARow]:=Pointer(Canvas.Brush.Color); // in OnDrawCell()
Color:=TColor(StringGrid1.Objects[aCol,ARow]); // in ExportProzedur
übrige Fragen: Nein, die Zelle hat keine Information, welche Farbe sie einnehmen soll - aus diesem Grund färbst DU die Zelle im OnDrawCell(). Und weil die Zelle diese Information nicht besitzt, legst du die Farbinformation in Objects[] ab, um später in der Exportprozedur darauf zugreifen zu können.