Delphi - Duda sobre un EDIT para campo numerico

 
Vista:

Duda sobre un EDIT para campo numerico

Publicado por YeYo (6 intervenciones) el 06/04/2006 22:49:22
Queria preguntar acerca de un EDIT, tengo en una tabla de mi BD un campo de tipo Numérico, y al ejecutar el programa, si escribo en el edit algun caracter no numerico y realizo alguna operacion que guarde en la base de datos, pues me salta el error de que esperaba otro tipo de parámetros, ¿como puedo controlar esto? no se si hay alguna forma de controlarlo o si hay alguna opción en la que solo se pueda escribir caracteres numericos en dicho EDIT, eso es todo, gracias de antemano.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Duda sobre un EDIT para campo numerico

Publicado por ramon (1 intervención) el 07/04/2006 00:28:49
que onda esa duda esta facil yo tambien batalle mucho pero es facil.

se selecciona el componente maskedit en la paleta de additional (tiene como unos ##)
en la propiedad de editmask entras y le pones puros 999999 la cantidad que deseas, y aceptar

ese componente sirve para seleccionar fechas , telefonos , numero y lo que sea numerico o mas bien que utilicemos mascaras
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Duda sobre un EDIT para campo numerico

Publicado por Virum (484 intervenciones) el 07/04/2006 00:39:47
Hola:

Puedes buscar algún edit que solo admita números ya te da el trabjajo ya hecho.

Si no, pones en el evento OnCreate de la aplicación:

DecimalSeparator := '.';

y en el evento OnKeyPress del edit:

procedure TFEntra.Edit1KeyPress(Sender: TObject; var Key: Char);
var
i: integer;
begin
//controlar entrada solo números y punto
if ( StrScan('0123456789.'+chr(7)+chr(8), Key) = nil ) then Key := #0;
//controlar entrada un solo punto decimal
for i := 1 to length(Edit1.Text) do
if ( copy(Edit1.Text,i,1) = '.' ) and not ( StrScan('.', Key) = nil ) then Key := #0;
end;

Así solo podrás meter decimales tipo 1.34

.
.
Si quieres la coma como separador decimal, pero poder usar el punto del teclado numérico a la hora de teclear el decimal pones

al principio

DecimalSeparator := ',';

y en el evento OnKeyPress del edit:

procedure TFContabilidad.ECantidadKeyPress(Sender: TObject; var Key: Char);
var
i: integer;
begin
//controlar entrada solo números y punto
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;

para decimales tipo 1,45

Suerte
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Duda sobre un EDIT para campo numerico

Publicado por YeYo (6 intervenciones) el 07/04/2006 10:32:23
Gracias por lo del maskedit, pero prefiero usar un EDIT, ramón, use lo que tu me dijiste pero ahora me pasa lo siguiente, y es que guarda correctamente pero redondeado, y a mi me interesa q se guarden los decimales en vez de un número entero redondeado porque son precios lo que guardo y claro, van con decimales q no se pueden perder :( ¿como podria acer para que no se redondeen cuando se guardan en la base de datos? gracias de antemano por tu atención y tu ayuda. Si alguien sabe otro método por favor que sea tan amable de ayudarme. Graciassssss
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Duda sobre un EDIT para campo numerico

Publicado por Yeyo (6 intervenciones) el 07/04/2006 10:34:31
Perdón quise decir que usé el método de Virum (el de los edit) esque me expresé mal :S
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Duda sobre un EDIT para campo numerico

Publicado por Virum (484 intervenciones) el 08/04/2006 09:24:27
Hola:

Si se redondea al guardar no es por el edit, es por el tipo del campo en el que lo guardas que harás alguna conversión que lo redondea.

Para que no te lo redondee guardas el texto del edit en un campo tipo texto, o lo conviertes a float y lo guardas en un campo tipo float.

Suerte.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Duda sobre un EDIT para campo numerico

Publicado por YeYo (6 intervenciones) el 08/04/2006 12:43:31
Hola

Pero si lo guardo en un tipo texto, luego no podre hacer consultas de SQL con funciones como el COUNT o el SUM al ser texto no? ya he probado a acer lo del float, pero Access no te da la opcion de acer un campo float, y no se si sera por eso , pero el caso esq dejando numerico con decimales, o con otro formato como el decimal fijo yu similares, se me sigue redondeando y ya no se como acerlo :( , graciasssss
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Duda sobre un EDIT para campo numerico

Publicado por Virum (484 intervenciones) el 09/04/2006 17:35:06
Hola:

No se nada de Access pero yo creo que aunque no tenga un tipo de campo llamado Float si debe tenerlo pero lo llamará de otra forma: extended, real, double, single....

¿cuantos decimales te interesa guardar?

Si por ejemplo el máximo son 4, creas un campo numerico de 5 decimales y supongo que asi no te redondearía.

Suerte.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Duda sobre como capturar una fecha

Publicado por Ricardo Corona Martinez (1 intervención) el 22/04/2006 01:17:02
Hola quisiera saber si alguien me puede ayudar con esta duda:

Tengo un formulario en el cual tengo varios tedit en los cuales voy a capturar fechas; en el primer paso capturo la mitad de la forma la cual contiene una fecha,
una vez capturada realizo una consulta para que me muestre los datos; y en seguida capturo otras 3 fechas, de 12 que tengo; pero me marca un error cuando trato de actualizar esos datos.

No se , si tal vez es por que estan vacios los demas campos, ya que estoy insertando los datos a un servidor informix.

Si me puede ayudar se los agradeceria mucho.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar