Hallo,
soll das Image nur im Bereich des StringGrids sichtbar sein, oder bedeckt das StringGrid nur einen Teil des Image?
Das onDrawCell wird ja für jede Zelle die gezeichnet werden muss aufgerufen.
Also musst du Anhand der Zellkoordinate(die liefert Dir OnDrawCell in der Prozedurvariablen rRect) den entsprechenden Bereich aus dem Image kopieren und in der Zelle mit Canvas... ausgeben.
In Deinem Code wird an keiner Stelle etwas gezeichnet, also weiße Fläche(Brush.Color)
Transparent in dem Sinne das das hinterliegende Image "durchscheint" ist
imho nicht möglich.