Hola.
Yo lo tenía más fácil ya que en mis aplicaciones, en lugar de tener TDbEdits tengo unos componentes propios heredados del mismo (tienen un par de características propias, como que con el ENTER saltan al siguiente control, etc. ...).
Así que añadí una nueva propiedad a mi TIdEditAvancat, llamada PuntsPerComes. Si la activo, cada vez que el usuario pulsa un punto en el control, es reemplazado por una coma.
Código:
procedure TIdEditAvancat.KeyPress(var key: char);
begin
if FIntroPerTabulador then begin
if key = #13 then begin
key := #0;
PostMessage( GetParentForm(Self).Handle, WM_NEXTDLGCTL,0,0 );
end;
end;
if FPuntsPerComes then if Key = '.' then Key := ',';
if key <> #0 then inherited KeyPress(key);
end;
NOTA: He dejado también el código que cambia el ENTER por un TABULADOR.
Saludos.