Thank you for the feedback, wp
I did some more tests here and I have some important points:
1. Behavior using DBGrid1.Options := DBGrid1.Options + [dgRowHighlight]
The row is painted only for records that do not assign a color using the OnPrepareCanvas event.
2. Behavior using DBGrid1.Options := DBGrid1.Options - [dgRowHighlight] and manually setting parameters in the event: OnPrepareCanvas or OnDrawColumCell
Navigation using the up and down arrow keys in the column where I am works for both entering and leaving the record. In the other columns, the row is marked using my CorIntensidade function, but when I leave the focused record, it is not unmarked.
Interestingly, when using the mouse to perform the same test, it works perfectly.