Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   no repetir 2 comas(,) en un edit (https://www.clubdelphi.com/foros/showthread.php?t=43512)

CarlosHernandez 13-05-2007 19:58:47

no repetir 2 comas(,) en un edit
 
:cool: hola a todos los Delphianos del foro..

una pregunta que me carga loco,

¿Como hago que en un edit solo pueda tener una sola coma (un caracter) y que no se me repita sin importar cuantas veces presione la tecla?

ejemplo: es para utilizarla en numeros decimal: 125,14 y lo que no quiero que suceda es: 125,14,,,,3 es decir que solo me reconozca una sola y que no se pueda repetir.

droguerman 13-05-2007 21:32:23

en el evento onkeypress :
Código Delphi [-]
procedure TfmCompra.editKeyPress(Sender: TObject;   var Key: Char);
begin
  if (key= #44) and (pos(',',edit.text)>0) then key:= #0;
end;

CarlosHernandez 13-05-2007 21:36:45

perfecto
 
droguerman gracias, eso era lo que queria :)

delphi.com.ar 13-05-2007 21:57:56

Un detalle que puede ser de importancia: Recuerda que los editores no solo acaptan entradas desde el teclado, también puede haber ingresos desde el clipboard con un simple "copy+paste". Si quieres el ingreso de números decimales consistentes, te recomiendo utilizar el CurrencyEdit de las RxLibs.

Saludos!

CarlosHernandez 14-05-2007 01:29:19

como se usa...
 
Cita:

Empezado por delphi.com.ar
Si quieres el ingreso de números decimales consistentes, te recomiendo utilizar el CurrencyEdit de las RxLibs.

me podrias dar mas informacion que no conozco nada sobre eso por favor.....:confused:

dec 14-05-2007 01:36:56

Hola,

Federico se refiere a que los componentes "TEdit", entre otros, aceptan las combinaciones de teclas tal que "CTRL+C", "CTRL+V", que, como sabes, permiten copiar y pegar contenido desde o al "ClipBoard" de Windows.

En otras palabras, no puedes confiar en que el usuario tecleará en un "TEdit", porque puede usar "CTRL+V" para copiar texto del portapapeles, o utilizar el menú contextual que le aparecerá si hace clic con el botón derecho de un "TEdit", por ejemplo.

Entonces, existen soluciones varias, estoy seguro, pero, Federico apunta al uso de algún componente "especializado", precisamente, en no admitir sino una serie de caracteres, incluso con algún formato específico, de modo que así puedes asegurar que en dicho componente existirá un valor que cumple con los requisitos que te sean menester.

Componentes podrás encontrar muchos, por ejemplo, en páginas como "Torry's Delphi Pages". El compañero Federico apunta directamente a uno de los componentes que se incluyen en la RX Library, que es un paquete de componentes, entre otras cosas, bastante popular y utilizado en Delphi.

Claro que podrías tratar de utilizar un "TEdit", bien heredando de él o bien "hackeándolo" un poco, aunque, tal vez te convendría usar un componente "especializado", como el que menciona Federico, por ejemplo.

PD. En todo caso la solución propuesta por el compañero droguerman me pareció muy elegante. Que conste. :)

CarlosHernandez 14-05-2007 18:28:15

gracias dec, asi tengo un poco de cultural general, jaja, no de verdad gracias porque asi tengo informacion sobre eso y no estar tan ignorante sobre el tema, voy a revisar todas las opciones a ver que aprendo y cualuier cosa les comentos. de todas manera el codigo que me dio droguerman es el que use, y me sirvio a la perfeccion......


La franja horaria es GMT +2. Ahora son las 08:51: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