Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > FireMonkey
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 03-02-2020
amadis amadis is offline
Miembro
 
Registrado: may 2005
Ubicación: San José, Colón, Entre Ríos, Argentina
Posts: 315
Poder: 20
amadis Va por buen camino
if key = vkPeriod then key := vkcomma

Hola Colegas,

necesito poder cambiar el PUNTO por la COMA, en un componente edit de firemonkey

En el evento onkeyDown he probado
Código Delphi [-]
if key = vkPeriod then key := vkcomma;

Pero el evento nunca ocurre.

El keyboardtype está puesto a NUMBERPAD.

Y necesito que si el usuario presiona PUNTO, en lugar de COMA, se transforme a coma para poder convertirlo a FLOAT sin problemas.


He probado la App en android y win32, el codigo que les comenté arriba nunca ocurre.
No se detecta el evento del punto.
He usado el vrreturn, para interceptar el boton LISTO de android y funciona.

¿de que otra forma puedo intereptar el PUNTO?

Gracias
Responder Con Cita
  #2  
Antiguo 03-02-2020
Avatar de mamcx
mamcx mamcx is offline
Moderador
 
Registrado: sep 2004
Ubicación: Medellín - Colombia
Posts: 3.927
Poder: 26
mamcx Tiene un aura espectacularmamcx Tiene un aura espectacularmamcx Tiene un aura espectacular
No uso firemonkey pero tienes un error de concepto. Los eventos no son valores mutables que se progagan porque si.

Son NOTIFICACIONES que se envian al control. Al asignar key, no estas ENVIANDO la notificacion a nadie. Simplemente cambias su valor local. Es como recibir un correo, cambiarlo en outlook y no darle enviar.

Ademas, lo que QUIERES y lo que HACES no encaja. QUIERES cambiar "PUNTO por la COMA" y HACES alterar el evento en key de punto a coma.
__________________
El malabarista.
Responder Con Cita
  #3  
Antiguo 03-02-2020
amadis amadis is offline
Miembro
 
Registrado: may 2005
Ubicación: San José, Colón, Entre Ríos, Argentina
Posts: 315
Poder: 20
amadis Va por buen camino
Normalmente en VCL lo hacía en el evento ONKEYPRESS, de los TEdit que deben trabajar con numeros enteros.

Lo hacía poniendo

Código Delphi [-]
if key = '.' then key := ',';

En Firemonkey no existe más el Keypress, porque por razones entendibles no se apretan teclas ya que son virtuales, en su lugar podemos usar onkeyDown, y onkeyup.

Por eso pretendía en el evento Onkeydown cambiar el valos de key

Código Delphi [-]
procedure EditKeyDown(Sender: TObject; var Key: Word;
  var KeyChar: Char; Shift: TShiftState);
begin
if key = vkPeriod  then  key := vkComma;
end;

la variable key no debe ser solo lectura porque no me dio error al asignarla.

Por el momento lo tengo solucionado, leyendo el string antes de usarlo. Lo proceso, cambio el punto por la coma. Y luego hago las operaciones necesarias.

Pero la idea era en tiempo real que al presionar PUNTO, salga COMA.
Responder Con Cita
  #4  
Antiguo 04-02-2020
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.549
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Otra opción es dejar que el usuario introduzca el número de la forma que le sea más cómoda a él y luego cuando debas tratarlo, hacer los cambios necesarios según el "FormatSettings" que tengas definido en el sistema.
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 01:52:50.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi