Не пользуясь обходными путями (обрабатывать событие OnSelectCell и в каких-то глобальных переменных запоминать координаты и использовать эти данные уже в OnKeyPress (это по крайней мере мне в голову пришло, но слишком уж муторно

procedure Tfrm_Main.strGrd_arrayKeyPress(Sender: TObject; var Key: Char);
begin
Key := CheckKey(Key, strGrd_array.Cells[strGrd_array.Row, strGrd_array.Col]);
end;
function CheckKey(key: char; text: string): char;
begin
case key of
'0'..'9', #8: result := key;
',', '.':
if pos(DecimalSeparator, text) = 0 then
result := DecimalSeparator else result := char(0);
else result := char(0);
end
end;
procedure Tfrm_Main.edt_setupKeyPress(Sender: TObject; var Key: Char);
begin
Key := CheckKey(Key, edt_setup.Text);
end;
procedure Tfrm_Main.strGrd_arrayKeyPress(Sender: TObject; var Key: Char);
begin
Key := CheckKey(Key, strGrd_array.Cells[strGrd_array.Row, strGrd_array.Col]);
end;