Ver Mensaje Individual
  #37  
Antiguo 22-02-2015
Avatar de José Luis Garcí
[José Luis Garcí] José Luis Garcí is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Las Palmas de G.C.
Posts: 1.372
Reputación: 25
José Luis Garcí Va camino a la fama
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 [-]
//Uses  ShellAPI ///1

//-----------------------------------------------------

//Después del TYPE
procedure ApplicationEvents1Message(var Msg: tagMSG;var Handled: Boolean); //2
//-----------------------------------------------------

var
  FMenu: TFMenu;  //O como se llame nuestro primer formulario
  MapearPuntoAComa: Boolean;   //3
implementation

//-----------------------------------------------------

procedure TFMenu.ApplicationEvents1Message(var Msg: tagMSG;var Handled: Boolean); //4
//-------------------------------------------------------------------------------
//*******************************[DEcimal del teclado númerico el . por coma]****
//-------------------------------------------------------------------------------
begin

  if MapearPuntoAComa AND (Msg.message = WM_KEYDOWN) AND
     (Msg.wParam = VK_DECIMAL) AND (DecimalSeparator = ',') then
  begin
    Msg.message := WM_CHAR;   // cambiamos el tipo de mensaje
    Msg.wParam := 44;  // si omitimos la línea anterior, aquí sería Msg.wParam := 188;
    Handled := FALSE;
  end;
  //Se puede activar o desactivar a la entrada y sadila de componentes
end;

procedure TFMenu.FormCreate(Sender: TObject);  //5
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
2eclaramos un procedimiento estándar de delphi
3onde 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
__________________
Un saludo desde Canarias, "El abuelo Cebolleta"

Última edición por Neftali [Germán.Estévez] fecha: 22-02-2015 a las 13:25:44. Razón: Cambiar etiqueta QUOTE por DELPHI
Responder Con Cita