Buenos días, lo prometido es deuda, así que empecemos con algo sencillo, será convertir el punto del teclado numérico en una coma, para los decimales, respetando el del teclado normal, para ello debemos hacer lo siguiente.
Código Delphi
[-]
procedure ApplicationEvents1Message(var Msg: tagMSG;var Handled: Boolean);
var
FMenu: TFMenu; MapearPuntoAComa: Boolean; implementation
procedure TFMenu.ApplicationEvents1Message(var Msg: tagMSG;var Handled: Boolean); begin
if MapearPuntoAComa AND (Msg.message = WM_KEYDOWN) AND
(Msg.wParam = VK_DECIMAL) AND (DecimalSeparator = ',') then
begin
Msg.message := WM_CHAR; Msg.wParam := 44; Handled := FALSE;
end;
end;
procedure TFMenu.FormCreate(Sender: TObject); begin
MapearPuntoAComa:=True;
Application.OnMessage:=ApplicationEvents1Message;
end;
Como veis lo he dividido en cinco partes y aunque creo que esta claro lo explicare un poco
1: en donde metemos las unit que usamos para nuestros componentes y funciones por defecto de delphi, llamamos al ShellApi
2

eclaramos un procedimiento estándar de delphi
3

onde esta declarada nuestra variable del form de la unidad principal añadimos la variable MapearPuntoAComa
4:rellenamos el procedimiento descrito en el punto 2
5: añadimos al evento OnCreate de diño form la linea MapearPuntoAComa: Boolean; y la linea siguiente
Y con esto tenemos el resultado que buscabamos