Hallo Smiley,
die Markierung des aktuellen Datensatzes im DBGrid wird von der Komponente schon selbst erledigt. Du kannst ein wenig an der Optik feilen, indem du in den Options deines DBGrid dgAllwaysShowSelection und dgRowSelect hinzufügst.
Die ständige Positionierung des aktuellen Datensatzes in der Mitte des Grids halte ich nicht für notwendig, da dass bei n sichtbaren Zeilen genau für n Zeilen gar nicht möglich sein wird - n/2 jeweils am Beginn der
Query und an deren Ende. Außerdem fällt mir auf die Schnelle auch nicht ein, wie ich das elegant lösen könnte.
Grüße vom marabu