Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > OOP
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 14-05-2008
axlrafael axlrafael is offline
Miembro
 
Registrado: abr 2008
Posts: 36
Poder: 0
axlrafael Va por buen camino
Cita:
Empezado por coso Ver Mensaje
Deberias comprobarlo en el momento en que necesitas un numero. La manera correcta de comprobarlo es usando excepciones (el usuario tb puede que haya puesto una letra, una O por un 0, cosas asi...)
La manera correcta para coger estos errores es usando :


Código Delphi [-]
try
a_sumar := strtofloat(Edit1.Text);
// Lo que se va a probar si provoca error o no
except
// Lo que quieras que pase si da un error...un mensaje, un valor por
//defecto...si no pasa ningun error, el trozo este no se ejecutara.
end;






aqui un ejemplo: lo puedes colocar en un boton 'Suma'


Código Delphi [-]
var
i : integer;
a_sumar : double;
resultado : double;
begin
resultado := 0;
for i := 0 to 324 do
begin
try
a_sumar := strtofloat((FindComponent('Edit'+inttostr(i)) as TEdit).Text);
except // Si hay error....
a_sumar := 0;
ShowMessage('Error en el Editbox nº' + inttostr(i));
end;
resultado := resultado + a_sumar;
end;
ShowMessage(FormatFloat('0.00',Resultado));
end;






venga, a ver si te sirve

Hola gracias coso, voy a adaptar mi código a este que me acabas de escribir haber si puedo, cualquier cosa yo les aviso va.

Saludos
Responder Con Cita
  #2  
Antiguo 14-05-2008
axlrafael axlrafael is offline
Miembro
 
Registrado: abr 2008
Posts: 36
Poder: 0
axlrafael Va por buen camino
Lo que intento hacer es como en la calculadora de Windows, que cuando uno borra algun dato automaticamente me aparece "0" para no hechar a perder la operación, asi es conmigo, no puedo dejar algun campo vacio por que me hecha a perder el código OnChange al sumar todos los campos.

Última edición por axlrafael fecha: 14-05-2008 a las 20:31:01.
Responder Con Cita
  #3  
Antiguo 14-05-2008
Avatar de ContraVeneno
ContraVeneno ContraVeneno is offline
Miembro
 
Registrado: may 2005
Ubicación: Torreón, México
Posts: 4.738
Poder: 23
ContraVeneno Va por buen camino
el TjvValidateEdit de las Jedi, como ya mencionaron, te permite manejar solo números, así no tendrías que validad nada. Además, este componente cuenta con la propiedad "HasMinValue" y "MinValue", lo que te permite asignar un valor mínimo válido, que sería cero en tu caso. En pocas palabras, solo con asignar dos propiedades te quitas de problemas.

Para instaslar las jedi, al descomprimir el archivo Zip, este incluye dos carpetas, JCL y JVCL, en cada una de ellas, existe una carpeta Install, con un archivo "Install" que debes ejecutar, el truco está en que primero hay que instalar las JCL y luego instalar las JVCL. En pocas palabras, ejecutas el archivo "Install" de las JCL y luego el archivo "Install" de las JVCL.
__________________

Responder Con Cita
  #4  
Antiguo 15-05-2008
Avatar de enecumene
[enecumene] enecumene is offline
Miembro de Oro
 
Registrado: may 2006
Ubicación: Santo Domingo, Rep. Dom.
Posts: 3.040
Poder: 21
enecumene Va por buen camino
Agregando lo dicho por nuestro amigo Contra, antes de instalar las bibliotecas Jedi, debes tener cerrado el delphi, de lo contraio no te va a instalar. ah y otra cosa, ves lo que te comenté anteriormente, ya Contra te explicó como instalar las JEDI. .

Saludos.
__________________

Mi BLOG - ¡Joder, leanse la guia de estilo!
Las Palabras son enanas, los ejemplos gigantes.
Responder Con Cita
  #5  
Antiguo 15-05-2008
axlrafael axlrafael is offline
Miembro
 
Registrado: abr 2008
Posts: 36
Poder: 0
axlrafael Va por buen camino
Gracias amigos voy a instalar los complementos de una vez para ver si puedo hacerlos asi.

Saludos
Responder Con Cita
  #6  
Antiguo 15-05-2008
[egostar] egostar is offline
Registrado
 
Registrado: feb 2006
Posts: 6.557
Poder: 25
egostar Va camino a la fama
Hola

No dudo que los componentes JEDI sean muy buenos, pero esto se puede hacer con los Edit normales de Delphi, digo yo "pa" que entonces es la POO .

Coincido con [Caro] al decir que se inicialicen todos los Edit a cero y se genere el evento OnKeyPress con lo siguiente:

Código Delphi [-]
procedure TGerencia_Reg.Edit1KeyPress(Sender: TObject; var Key: Char);
 begin
  if not (key in ['0'..'9',#8]) then key:=#0;
end;

Depués generar el evento OnChange en cualquier Edit de este forma:

Código Delphi [-]
procedure TGerencia_Reg.Edit1Change(Sender: TObject);
begin
   if ( (Sender as TEdit).text = '') or (Sender as TEdit).text = ' ') ) then
        (Sender as TEdit).text := '0';
end;

Finalmente seleccionas los 323 Edit's restantes y le asignas los mismos eventos a todos.

Así de fácil te la pone nuestra herramienta Delphi

Intentalo y veras lo bonito que queda

Salud OS
__________________
"La forma de empezar es dejar de hablar y empezar a hacerlo." - Walt Disney
Responder Con Cita
  #7  
Antiguo 15-05-2008
Avatar de ContraVeneno
ContraVeneno ContraVeneno is offline
Miembro
 
Registrado: may 2005
Ubicación: Torreón, México
Posts: 4.738
Poder: 23
ContraVeneno Va por buen camino
Cita:
Empezado por egostar Ver Mensaje
Hola

No dudo que los componentes JEDI sean muy buenos, pero esto se puede hacer con los Edit normales de Delphi, digo yo "pa" que entonces es la POO
Solo que con el Edit, luego tendrías que validar que sean puros números, que no tengan caracteres extraños, que no se pueda copiar y pegar cosas raras en ellos, que mantengan el formato numérico adecuado, que si la coma es un separador de miles, que lo puedan escribir más de una vez, pero si es separador de decimales, se pueda poner solo una vez, o en su caso el punto. Tendrías que hacer conversiones en caso de querer realizar operaciones y / o asignaciones, en fin, que habría que codificar una infinidad de cosas.

Si me preguntas que opción escogería:

1. Asignar dos o tres propiedades
2. Codificar y preparar un Edit para validar infinidad de situaciones.

Escogería la primera. Y seguiría una de mis principales guías de programación:
Controla todo lo que puedas controlar con los controles.


De cualquier manera, si estas utilizando 324 controles (el que sea) en un mismo proceso o procedimiento, seguro tienes un problema de diseño bastante gordo.
__________________


Última edición por ContraVeneno fecha: 15-05-2008 a las 22:53:06.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Como crear un bucle con TEdit's axlrafael OOP 12 08-05-2008 19:22:48
Pasar demas datos de un DBGRID a TEDIT's Ericato Varios 5 09-03-2007 17:44:05
cambiar campo null a not null andressanchez Firebird e Interbase 8 18-09-2006 22:00:09
Como valido un null?? jbetancurt Firebird e Interbase 2 11-11-2004 16:19:39
Como puedo grabar un NULL en la BD? furniman Varios 2 23-03-2004 11:36:36


La franja horaria es GMT +2. Ahora son las 23:31:28.


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
Copyright 1996-2007 Club Delphi