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.:o saludos. |
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. |
gracias por responder Fidel
ahora lo q pasa es q al quere digitar dentro del 1 Edit me lansa un error diciendo exactamente: Cita:
a q se debe esto. ahora una pregunta listo colo
dentro del evento onKeyPress de todos los 5 edit o a cada edit :confused: y aq te refieres cuando dices Cita:
|
El error te sale porque al principio los edit están vaciós. Puedes solucionarlo así:
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. |
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
Espero te ayude Saludos |
Otra manera de evitar el error es .... StrToInt( '0' + Edit.text )
|
Cita:
Tomo nota ;) Salu2. |
Cita:
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. |
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
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:
nuevamente muchas gracias y hasta una proxima oportunidad :D |
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. |
La franja horaria es GMT +2. Ahora son las 11:11:25. |
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