Der Fehler muss irgendwo anders liegen
Nagut, kann ich jetzt nur so behaupten aber nicht begründen.
Habe einige in Delphi 7 geschriebene Programme, in denen das JVDBGrid genutzt wird, in denen die Implementierung in der Prozedur zu OnDrawColumnCell analog zu Deiner Implementierung erfolgt und die am Ende immer per Case oder sonstiger Abfrage entweder DefaultDrawColumnCell oder inherited aufrufen. Und bei mir treten keine Probleme auf, es wird immer auf Anhieb die richtige Zeile ausgewählt, das Grid hat nur in den seltensten Fällen den Focus, es sei denn per Tab, HotHey oder Mausklick wird es ausgewählt.
Breakpoint auf die erste Zeile von dbGridDetailDrawColumnCell und dann per Debugger. Wann wird dbGridDetailDrawColumnCell aufgerufen? Eventuell vor dem per Klick veranlassten Satzwechsel, aber danach nicht mehr. Ein bisserl erscheint mir Deine Fehlerbeschreibung so, als ob da die Reihenfolge der Verarbeitungsschritte nicht so ganz den Erwartungen entspricht. Nur aus der Ferne kann man da lediglich mutmaßen. Ich weiß nur, dass ich beim ersten Programm, bei dem ich ein Prozudur analog zu Deinem dbGridDetailDrawColumnCell implementiert habe, sehr lange gebraucht habe, um eine funktionierende Variante zu finden. Da das aber schon über 10 Jahre her ist, kann ich nicht mehr sagen, wo genau der Knackpunkt lag.
Die von mir genutzte Version von TJVDBrid ist vom 07.09.2011, also nicht so unbedingt die Neueste.