Ein DBGrid ist datensensitiv. Bedeutet, das der Datensatzzeiger im DBGrid immer mit dem Datensatzzeizer der zugrundeliegenden Datenmenge übereinstimmt.
Du kannst also im deinem onKeyPress o.Ä. einfach auf den Dataset verweisen
Delphi-Quellcode:
i:= MyZeosTable.FieldByName('PersonenID').asInteger;
oder
i:= DBGrid1.Datasource.Dataset.FieldByName('PersonenID').asInteger;
Schöne Grüße,
Jens