Hallo,
nach ComboBox.Visible := False wird ein Neuzeichnen der entsprechenden Zelle ausgelöst.
Dabei wird der dann in Cells enthaltene String automatisch gezeichnet.
Diesen automatisch ausgegebenen String erst übermalen:
Delphi-Quellcode:
with StringGrid1 do
begin
Canvas.FillRect(Rect);//<------ !
//Bitmap aus Zelle lesen
Object_Bitmap := TBitmap(Objects[aCol, ARow]);
//...
Alternativ könnte man auch das komplette Zeichnen des Grids übernehmen indem man DefaultDrawing auf False setzt.