Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   cambiar el punto por la coma (https://www.clubdelphi.com/foros/showthread.php?t=35109)

carlosll 31-08-2006 19:30:59

cambiar el punto por la coma
 
:confused: hola: en mi aplicacion, ingreso Precios $ con decimales el problema es que tengo que utilizar la tecla " , " del teclado. Para agilizar la carga de datos quiero utilizar la tecla " punto" del teclado numerico.

Lo que quiero hacer es que si presiono la tecla punto del teclado numerico, me lo cambie por la coma.

Como hago para detectar que la tecla presionada es el punto del teclado numerico?????

he visto por ahi que para detectar la tecla enter se compara IF key=#13 ...., pero no se como identificar a la tecla punto del teclado numerico.

PD: ya probe cambiarla configuracion regional de guindous, pero no quiero hacer eso.

saludos. CArlos

Enan0 31-08-2006 19:41:37

Código Delphi [-]
procedure TPrincipal.ImporteKeyPress(Sender: TObject; var Key: Char);
var
   numeros: set of '0'..'9';
   i:integer;
begin
Try
   numeros:=['0'..'9'];
   i:=pos(',',importe.Text);
//Busca si se ingreso la coma  (para que te ingresen algo como esto 7.0.0)
   if (key ='.') and (i<0) then
      begin
         key:=',';
      end
   else
      if  not (key in numeros) and (key <> #8) then
         key:=#0;

//#8 es el backspace
except
end;
end;

yusnerqui 31-08-2006 19:48:22

bueno pues prueba algo así en el evento keypress
Código Delphi [-]
if key='.' then key:=','

saludos

carlosll 31-08-2006 19:49:40

perfecto, muchisimas gracias... Enan0...
saludos. carlos

yusnerqui 31-08-2006 19:50:35

caramba parese que llegué un poco tarde jejeje

igual saludos a todos

rimbener 01-09-2006 00:25:18

Otra forma puede ser ésta:
Código Delphi [-]
                                                                                procedure TfmRecibos.ImporteKeyPress(Sender: TObject; var Key: Char);
begin
   if (key = '.') or (key = ',') then
      key := DecimalSeparator
   else
      if not (key in ['0'..'9', #8]) then
         key := #0;
end;
DecimalSeparator es la constante que usa el sistema operativo en la configuración regional, de esta manera al llevar el programa a una computadora con distinta configuración el funciona igual.

penabad 12-04-2007 19:11:57

Aunque este mensaje es "antiguo", he visto en http://www.latiumsoftware.com/en/delphi/00047.php
un método MUY interesante: interceptar los mensajes de la aplicación de forma que (para todos los lugares en que tecleemos, eso sí) cuando se
pulse el punto en el teclado numérico lo cambie por una coma.


La franja horaria es GMT +2. Ahora son las 03:07:30.

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