Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 08-03-2008
Avatar de georgejg
georgejg georgejg is offline
Miembro
 
Registrado: ene 2008
Ubicación: Colombia
Posts: 37
Poder: 0
georgejg Va por buen camino
sumar edit en tiempo de ejecucion

hola.

les comentare cual es la duda.
quisiera saber como puedo sumar varios edit en "tiempo de ejecucion".

ejemplo:
tengo 5 Tedit donde capturo valores numericos.
un edit al q llamare "Resultado" donde me mustra la suma de los 5 edit.

ahora lo q se quiere es q a medida a van digitando en los edit, me valla mostrando la suma de los mismos en el "Resultado".

no se si me explico bien.

les agradeceria una pronta respuesta.
saludos.
Responder Con Cita
  #2  
Antiguo 08-03-2008
fidel fidel is offline
Miembro
 
Registrado: mar 2005
Posts: 381
Poder: 20
fidel Va por buen camino
En el evento OnKeyPress del primer edit pones:

EditResultado.Text = IntToStr(StrToInt(Edit1.Text) + StrToInt(Edit2.Text) + StrToInt(Edit3.Text) + StrToInt(Edit4.Text) + StrToInt(Edit5.Text) );

Después vas a la ventana del evento OnKeyPress del segundo edit y seleccionas el nombre que le dió al primero.

Y lo mismo para el tercero, cuarto y quinto edit.
Responder Con Cita
  #3  
Antiguo 08-03-2008
Avatar de georgejg
georgejg georgejg is offline
Miembro
 
Registrado: ene 2008
Ubicación: Colombia
Posts: 37
Poder: 0
georgejg Va por buen camino
gracias por responder Fidel

ahora lo q pasa es q al quere digitar dentro del 1 Edit me lansa un error diciendo exactamente:
Cita:
is not a valid integer value
es decir q No es un valor de número entero válido
a q se debe esto.

ahora una pregunta listo colo
Código Delphi [-]
EditResultado.Text = IntToStr(StrToInt(Edit1.Text) + StrToInt(Edit2.Text) + StrToInt(Edit3.Text) + StrToInt(Edit4.Text) + StrToInt(Edit5.Text) );

dentro del evento onKeyPress de todos los 5 edit o a cada edit

y aq te refieres cuando dices

Cita:
Después vas a la ventana del evento OnKeyPress del segundo edit y seleccionas el nombre que le dió al primero
saludos
Responder Con Cita
  #4  
Antiguo 08-03-2008
Avatar de ixMike
ixMike ixMike is offline
Miembro
 
Registrado: feb 2004
Posts: 1.151
Poder: 22
ixMike Va por buen camino
El error te sale porque al principio los edit están vaciós. Puedes solucionarlo así:

Código Delphi [-]
If E1.Text='' then E1.Text:='0';
If E2.Text='' then E2.Text:='0';
If E3.Text='' then E3.Text:='0';
If E4.Text='' then E4.Text:='0';
If E5.Text='' then E5.Text:='0';
EditResultado.Text = IntToStr(StrToInt(E1.Text) + StrToInt(E2.Text) + StrToInt(E3.Text) + StrToInt(E4.Text) + StrToInt(E5.Text));


En cuanto a lo otro, a lo que se refiere es a lo siguiente: pones el código que te he dicho en el evento OnKeyPress de uno de los edits (en E1, por ejemplo). Depués, seleccionas los otros cuatro, te vas al inspector de objetos, a la pesataña de eventos, y en OnKeyPress seleccionas de la lista el que pongo Edit1KeyPress (o E1KeyPress, según hayas llamado al primer edit). Con eso lograrás que todos los Edits tengan el mismo procedure en el evento OnKeyPress.


Salu2.

Última edición por ixMike fecha: 08-03-2008 a las 18:09:52.
Responder Con Cita
  #5  
Antiguo 08-03-2008
Avatar de yusnerqui
yusnerqui yusnerqui is offline
Miembro
 
Registrado: mar 2004
Ubicación: Cuba
Posts: 679
Poder: 21
yusnerqui Va por buen camino
Creo que con la función StrToIntDef te será muy práctico puesto que no tendrás que esperar que todos los edit se llenen para ir viendo los resultados.
Esto será lo que debes poner en el esvento onkeypress
Código Delphi [-]
EditResultado.Text = IntToStr(StrToIntDef(Edit1.Text,0) 
+ StrToIntDef(Edit2.Text,0) + StrToIntDef(Edit3.Text,0) + 
StrToIntDef(Edit4.Text,0) + StrToIntDef(Edit5.Text,0) );

Espero te ayude

Saludos
__________________
Lo importante no es llegar primero, sino saber llegar.

Para que puedas llegar mejor lee la Guia de Estilo


Última edición por yusnerqui fecha: 08-03-2008 a las 18:41:02.
Responder Con Cita
  #6  
Antiguo 09-03-2008
fidel fidel is offline
Miembro
 
Registrado: mar 2005
Posts: 381
Poder: 20
fidel Va por buen camino
Otra manera de evitar el error es .... StrToInt( '0' + Edit.text )

Código Delphi [-]
EditResultado.Text = IntToStr(StrToInt('0'+Edit1.Text) + StrToInt('0'+Edit2.Text) + StrToInt('0'+Edit3.Text) + StrToInt('0'+Edit4.Text) + StrToInt('0'+Edit5.Text) );
Responder Con Cita
  #7  
Antiguo 09-03-2008
Avatar de ixMike
ixMike ixMike is offline
Miembro
 
Registrado: feb 2004
Posts: 1.151
Poder: 22
ixMike Va por buen camino
Cita:
Empezado por fidel Ver Mensaje
Otra manera de evitar el error es .... StrToInt( '0' + Edit.text )
Muy ingenioso nunca se me habría ocurrido.

Tomo nota


Salu2.
Responder Con Cita
  #8  
Antiguo 10-03-2008
Avatar de georgejg
georgejg georgejg is offline
Miembro
 
Registrado: ene 2008
Ubicación: Colombia
Posts: 37
Poder: 0
georgejg Va por buen camino
Cita:
Empezado por ixMike Ver Mensaje
Muy ingenioso nunca se me habría ocurrido.

Tomo nota


Salu2.
Hola a todos.

retomando con el tema despues de haber realizado las modificaciones de acuerdo a cada una de las recomendaciones, los resultados son los siguientes:

al poner los valores de los edit en '0' efectivamente se elimina el error
"is not a valid integer value" pero el problema ahora es al mostrar el resultado correcto. voy a ser lo mas especifico posible.

ejemplo:
en el Edit1 digito 1. en el editResultado me muestra 0.
Edit2 digito 2. en el editResultado me muestra 1.
Edit3 digito 3. en el editResultado me muestra 3.

si borro el Valor del Edit2 (2) en el editResultado me muestra 6.

otra pruba fue q al hacer alguna modificacion a algun valor de los edit y dar Enter el resultado lo muestra correctamente.
Responder Con Cita
  #9  
Antiguo 10-03-2008
Avatar de georgejg
georgejg georgejg is offline
Miembro
 
Registrado: ene 2008
Ubicación: Colombia
Posts: 37
Poder: 0
georgejg Va por buen camino
solucionado

Primero agradecerles por sus opiniones que fueron muy importantes.

ahora la solucion definitiva q se dio fue la siguiente:

podemos colocar el mismo codigo que nos mostro Fidel

Código Delphi [-]
EditResultado.Text = IntToStr(StrToInt('0'+Edit1.Text) + StrToInt('0'+Edit2.Text) + StrToInt('0'+Edit3.Text) + StrToInt('0'+Edit4.Text) + StrToInt('0'+Edit5.Text) );

pero no lo colocamos en evento OnKeyPress de los Edit ya que ocurre lo q les comente en el mensaje anterior.

ahora para que me ejecute correctamente lo colocamos en el evento OnChange esto me efectua las modificaciones en "Tiempo de Ejecucion" el codigo final q utilice fue el siguiente:

Código Delphi [-]
procedure TUnit_Main.Edit2Change(Sender: TObject);
begin
  Edit1.Text:= IntToStr(StrToInt('0'+Edit2.Text) + StrToInt('0'+Edit6.Text) + StrToInt('0'+Edit10.Text) + StrToInt('0'+Edit14.Text) + StrToInt('0'+Edit18.Text) + StrToInt('0'+Edit22.Text) + StrToInt('0'+Edit26.Text));
end;

nuevamente muchas gracias y hasta una proxima oportunidad
Responder Con Cita
  #10  
Antiguo 10-03-2008
Avatar de ixMike
ixMike ixMike is offline
Miembro
 
Registrado: feb 2004
Posts: 1.151
Poder: 22
ixMike Va por buen camino
Lo que te pasaba antes es porque el evento se ejecutaba antes de que el nuevo número se escribiera en el edit. También te habría valido el evento OnKeyUp.


Salu2.
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 sumar un valor de un edit y reflejar incremento en el mismo? The_Animal Varios 3 31-12-2007 01:12:48
sumar dos edit arespremium Internet 5 01-08-2007 03:08:25
Tabla en tiempo de ejecucion noshy SQL 1 24-07-2006 00:39:31
Sumar valores en un Edit dsa132132 OOP 2 02-08-2004 02:15:21
Tiempo de ejecucion? st7 Varios 3 11-05-2004 22:03:28


La franja horaria es GMT +2. Ahora son las 06:24:53.


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