Simular a vírgula através do ponto do teclado numérico no Delphi
{ Na seção "private" do Form principal acrescente: }
procedure AppMsg(var Msg: TMsg; var Handled: Boolean);
{ Na seção "implementation" acrescente (troque TForm1 para
o nome do seu form principal): }
procedure TForm1.AppMsg(var Msg: TMsg; var Handled: Boolean);
begin
if Msg.Message = WM_KEYDOWN then
if Msg.wParam = 110 then
Msg.wParam := 188;
end;
{ No evento "OnCreate" do form principal, coloque: }
Application.OnMessage := AppMsg;
{ Uma segunda alternativa (José Geraldo - ES):
Coloque o código abaixo no evento OnKeyPress do componente
onde se quer a conversão (Edit, DBEdit, etc). Neste caso
a conversão funcionará apenas neste componente (óbvio). }
if Key = '.' then Key = DecimalSeparator;
Na primeira alternativa, sempre que for pressionado o ponto do teclado numérico (da direita do teclado), este será convertido para vírgula, independentemente do controle que estiver em foco. Já na segunda, o ponto pode ser de qualquer lugar do teclado.