Encontré la solución...
Se trata de jugar con la captura del mensaje y cambiarlo, paso el código:
Declaramos la siguiente función:
Código Delphi
[-]
procedure ApplicationMessage(var Msg: TMsg; var Handled: Boolean);
Asignamos la propiedad OnMessage en el evento Create del formulario, por ejemplo:
Código Delphi
[-]
procedure TForm1.FormCreate(Sender: TObject);
begin
Application.OnMessage := ApplicationMessage;
end;
Si queremos dejar de capturar mensajes todo lo que tenemos que hacer es establecer OnMessage en nil:
Código Delphi
[-]
procedure TForm1.FormDestroy(Sender: TObject);
begin
Application.OnMessage := nil;
end;
Finalmente debemos implementar el procedimiento. Por ejemplo, vamos a atrapar los mensajes de teclado WM_KEYUP y WM_KEYDOWN para convertir el punto decimal del teclado numérico en una coma.
Código Delphi
[-]
procedure TForm1.ApplicationMessage(var Msg: TMsg;
var Handled: Boolean);
begin
case Msg.Message of
WM_KEYDOWN, WM_KEYUP:
case Msg.wParam of
110: Msg.wParam := 188;
end;
end;
end;
Cabe destacar que la solución la encontré aquí:
http://www.latiumsoftware.com/es/delphi/00047.php
Yo me he permitido modificar la función para que cambie también el punto del teclado normal, tal que así:
Código Delphi
[-]
procedure TForm1.ApplicationMessage(var Msg: TMsg;
var Handled: Boolean);
begin
case Msg.Message of
WM_KEYDOWN, WM_KEYUP:
case Msg.wParam of
110: Msg.wParam := 188;
190: Msg.wParam := 188;
end;
end;
end;
Gracias por la ayuda y espero que sirva a alguien!