Hallo,
in Deiner OnDrawCell-Behandlungs-Routine werden selectierte Zellen wie normale gezeichnet.
Füge mal die markierte Zeile in die Prozedur ein,
dann klappt erst mal die Selectierung.
Delphi-Quellcode:
//...
begin
with (Sender as TStringGrid), Canvas do
if not (gdSelected in State) then//<----------- !!!
begin
//...
Dann die Procedur zu OnDrawCell erweitern
und selectierte Zellen entsprechnend Deinen Wünschen zeichnen.