Предлагаю доработать код вот так
Код:
procedure TDBAxisGridInplaceEdit.KeyPress(var Key: Char);
begin
if Assigned(AxisBar) and Assigned(AxisBar.Field) and (AxisBar.Field is TNumericField) and (AxisBar.GetBarType = ctCommon) then
if CharInSetEh(Key, ['.', ',']) then
Потому как замена точки и запятой на DecimalSeparator не имеет смысла для lookup и PickList полей. Проверки is TNumericField недостаточно, потому что чаще всего lookup это integer поля. В оригинальном коде происходит неправильная обработка поиска в lookup где строки содержат точку напр ST. PETERBURG.