Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   OOP (https://www.clubdelphi.com/foros/forumdisplay.php?f=5)
-   -   TMaskEdit y las benditas máscaras de edición/muestra (https://www.clubdelphi.com/foros/showthread.php?t=85332)

TiammatMX 03-03-2014 19:13:29

TMaskEdit y las benditas máscaras de edición/muestra
 
1 Archivos Adjunto(s)
Buen día/tarde/noche (según aplique) estimados compañeros de lenguaje de programación. Muchas veces he usado un TMaskEdit para solicitar al usuario que ingrese un dato en un formato específico, pero ésta vez sospecho fuertemente que estoy haciendo algo mal o de plano Delphi (usando Delphi 6) está enloqueciendo.

Tengo varios TMaskEdit donde el usuario ingresará un número en formato 'double' (con la máscara de edición definida así: ###.##0;0;_), en una pantalla diseñada como en la imagen, y llenada con éste código:

Código Delphi [-]
edtPeso.Text := FormatFloat('###.##0;0;_',aPesoIMC[PESOIMC]);

y como pueden ver en la imagen ¡¡ME PONE DOS PUNTOS DECIMALES!! :eek::eek::eek:

Al momento de intentar procesar los datos, recibo un valor de cadena definido así '80 .000', con un espacio interno que genera un error de procesamiento.

La pregunta que me permita solucionar mis problemas es: ¿Qué combinación de máscara de edición y recuperación por FormatFloat debería usar para que no aparezca el punto decimal repetido y permita al usuario capturar su número sin que "brinque" un error?

olbeup 04-03-2014 08:27:11

Hola tiammat,

Yo utilizo munchos MaskEdit en vez de esto:
Código Delphi [-]
edtPeso.Text := FormatFloat('###.##0;0;_',aPesoIMC[PESOIMC]);
Pon esto otro:
Código Delphi [-]
edtPeso.Text := FormatFloat('.00',aPesoIMC[PESOIMC]);
O esto otro:
Código Delphi [-]
edtPeso.Text := FormatFloat('000.00',aPesoIMC[PESOIMC]);
Este último te pondrá un cero delante si el dato que muestras es inferior a 3 números y podrás interactuar con el MaskEdit ya que no te pondrá un espacio.

Un saludo

olbeup 05-03-2014 08:44:49

Hola tiammat,

Te ha funcionado lo que te puse.

Personalmente prefiero usar el TEdit que el TMaskEdit, el TEdit te da mucho juego y el TMaskEdit te limita por la configuración que le pones, lo único que lo uso es para las fechas y horas, el TEdit lo tienes que controlar para que no inserten números pero eso es fácil e incluso para controlar la coma o punto.

Un saludo.

TiammatMX 05-03-2014 15:09:57

Cita:

Empezado por olbeup (Mensaje 473299)
...Te ha funcionado lo que te puse...

Perfectamente..., aunque como tú, decidí a final de cuentas usar un TEdit para no limitarme mucho. Ya sabes, los usuarios quejumbrosos y exigentes.

olbeup 06-03-2014 08:10:22

Buena elección

^\||/

Un saludo


La franja horaria es GMT +2. Ahora son las 22:24:03.

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