Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   validar edit con formato de precio (https://www.clubdelphi.com/foros/showthread.php?t=61690)

Lizette 18-11-2008 16:19:40

validar edit con formato de precio
 
Como puedo validar un edit correspondiente a precio, es decir, debe aceptar un sólo punto, despúes del punto, sólo debe aceptar 2 digitos y antes del punto 3 digitos?

Ya le intente pero nomas me hice enredos..

luisgutierrezb 18-11-2008 17:02:29

porque no usas un componente ya hecho como los jedi o algun otro?

ContraVeneno 18-11-2008 17:21:34

Lo más recomendable es usar un control diseñado para tal caso, es decir, manejar datos monetarios.

Las Jedi (JVCL) tienen uno muy bueno llamado TjvValidateEdit, al cuál le defines dos propiedades y listo, no tienes que programar nada. las JVCL son gratis y muy recomendables.

cHackAll 19-11-2008 01:33:01

Hola

ContraVeneno 19-11-2008 16:16:33

Cita:

Empezado por ContraVeneno (Mensaje 326642)
...Las Jedi (JVCL) tienen uno muy bueno llamado TjvValidateEdit, al cuál le defines dos propiedades y listo, no tienes que programar nada. las JVCL son gratis y muy recomendables.

Y agrego: Y no tienes que hacer conversiones de texto a número o viceversa, ya viene preparado para que puedas utilizar: ValidateEdit.AsInteger, AsFloat, AsCurrency o AsString, según necesites.

En pocas palabras: con un control diseñado para tal caso, no tienes que programar nada y no tienes que hacer conversiones.

fidel 19-11-2008 19:21:32

En el evento OnKeyPress del edit
Código Delphi [-]
//entrar solo números ECantidad
procedure TFContabilidad.ECantidadKeyPress(Sender: TObject; var Key: Char);
var
  i: integer;
begin
  //controlar entrada solo números
  if ( StrScan('0123456789.'+chr(7)+chr(8), Key) = nil ) then  Key := #0;
  //cambiar punto decimal por coma
  if key = '.' then key := ',';
  //controlar entrada una sola coma
  for i := 1 to length(ECantidad.Text) do
    if ( copy(ECantidad.Text,i,1) = ',' ) and not ( StrScan(',', Key) = nil ) then  Key := #0;
end;

cHackAll 19-11-2008 20:18:13

Cita:

Empezado por cHackAll (Mensaje 326726)
Hola

Cita:

Empezado por ContraVeneno (Mensaje 326787)
Cita:

Empezado por ContraVeneno (Mensaje 326642)
...Las Jedi (JVCL) tienen uno muy bueno llamado TjvValidateEdit, al cuál le defines dos propiedades y listo, no tienes que programar nada. las JVCL son gratis y muy recomendables.

Y agrego: Y no tienes que hacer conversiones de texto a número o viceversa, ya viene preparado para que puedas utilizar: ValidateEdit.AsInteger, AsFloat, AsCurrency o AsString, según necesites.

En pocas palabras: con un control diseñado para tal caso, no tienes que programar nada y no tienes que hacer conversiones.

Solo saludaba :o

ContraVeneno 19-11-2008 20:22:56

yo nada más decía :D:D

Lizette 19-11-2008 21:01:52

Si, gracias por sus ideas. Lo logre hacer..:)


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

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