Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > OOP
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 12-08-2007
Avatar de Kamael
Kamael Kamael is offline
Miembro
 
Registrado: ago 2007
Posts: 64
Poder: 17
Kamael Va por buen camino
Smile sumar edits

pues eso. Como se pueden sumar dos edits para que el resultado se cargue en otro edit al estilo excell, es decir, que te lo sume sin tener que pulsar ningun boton.
Responder Con Cita
  #2  
Antiguo 12-08-2007
Avatar de Delphius
[Delphius] Delphius is offline
Miembro Premium
 
Registrado: jul 2004
Ubicación: Salta, Argentina
Posts: 5.582
Poder: 25
Delphius Va camino a la fama
Hola Kamael,
¿Por sumar te refieres a concatenar? O, lo que deseas es ¿Sumar dos números?

Código Delphi [-]
//Para concatenar el contenido de 2 edits:

Edit3.Text := Edit1.Text + Edit2.Text;

//Para sumar dos valores (suponiendo que son integer) y mostrarlos en un edit:

Edit3.Text := IntTostr( StrToInt(Edit1.Text) + StrToInt(Edit2.Text);

Con respecto a lo que dices: sin tener que usar un botón... habría que ver.. hay muchos eventos en donde se puede conseguir esto... si puedes indicarnos mejor que lo que quieres conseguir, podríamos decirte cual de los eventos es el que mejor se adapta a tu necesidad.

Saludos,
__________________
Delphius
[Guia de estilo][Buscar]
Responder Con Cita
  #3  
Antiguo 12-08-2007
Avatar de Kamael
Kamael Kamael is offline
Miembro
 
Registrado: ago 2007
Posts: 64
Poder: 17
Kamael Va por buen camino
Smile sumar dos edits

Necesito sumar dos numeros y el resultado expresarlo en otro edit, es decir,coloco en un edit1 el numero 2 y automaticamente en el edit resultado me tiene que poner un dos, si en el edit2 coloco un cinco en el edit resultado me tiene que poner el resultado de la sume(7).
Gracias por responder
Responder Con Cita
  #4  
Antiguo 12-08-2007
Avatar de Delphius
[Delphius] Delphius is offline
Miembro Premium
 
Registrado: jul 2004
Ubicación: Salta, Argentina
Posts: 5.582
Poder: 25
Delphius Va camino a la fama
Bueno... mirá te doy un código. Se puede optimizar... Por ahora, yo me valgo del evento OnChange. Una vez que se cambia el valor del edit1 y/o edit2 se llama a un procedimiento que se encarga de calcular la suma y mostrar el valor.
Se puede hacer de otra forma... te la dejo a estudio:

Código Delphi [-]
procedure TForm1.Actualiza;
var suma: integer;
begin
  suma := Nro1 + Nro2;
  Edit3.Text := IntToStr(suma);
end;

procedure TForm1.Edit1Change(Sender: TObject);
begin
  Nro1 := StrToInt(Edit1.Text);
  Actualiza;
end;

procedure TForm1.Edit2Change(Sender: TObject);
begin
  Nro2 := StrToInt(Edit2.Text);
  Actualiza;
end;

Saludos,
__________________
Delphius
[Guia de estilo][Buscar]
Responder Con Cita
  #5  
Antiguo 12-08-2007
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola
En el evento OnChange del edit2, osea del segundo dato:
Código Delphi [-]
procedure TForm1.Edit2Change(Sender: TObject);
begin
  Edit3.Text := FloatToStr(StrToFloat(Edit1.Text) + StrToFloat(Edit2.Text));
end;
El resultado de la suma del edit1 + edit2 se vera en edit3.
Ojo, si borras el numero, osea lo dejas en blanco, en el edit2 generara un error.
Saludos
__________________
Siempre Novato
Responder Con Cita
  #6  
Antiguo 12-08-2007
Avatar de droguerman
droguerman droguerman is offline
Miembro
 
Registrado: abr 2005
Ubicación: tierra
Posts: 999
Poder: 20
droguerman Va por buen camino
para manejar espacios en blanco y similares sugiero:
Código Delphi [-]
procedure TForm1.Edit2Change(Sender: TObject);
begin
  Edit3.Text := FloatToStr(StrToFloatDef(Edit1.Text,0) + StrToFloatDef(Edit2.Text,0));
end;
porque tu sabes los usuarios...
__________________
self.free;
Responder Con Cita
  #7  
Antiguo 12-08-2007
Avatar de salvica
salvica salvica is offline
Miembro
 
Registrado: mar 2004
Ubicación: Albacete (España) ... En un lugar de la Mancha ...
Posts: 304
Poder: 21
salvica Va por buen camino
Hola
Cita:
Empezado por Caral Ver Mensaje
Hola
...
Ojo, si borras el numero, osea lo dejas en blanco, en el edit2 generara un error.
Saludos

No necesariamente
Código Delphi [-]

procedure TForm1.Actualiza( Valor1, Valor2:string );
var 
  Nro1, Nro2 : real;
begin
{ evitar el error si se mete una letra, o se deja en blanco }
  Nro1       := StrToFloatDef( Valor1, 0 );
  Nro2       := StrToFloatDef( Valor2, 0 );
{ ver el resultado }
  Edit3.Text := FloatToStr( Nro1+Nro2 );
end;

procedure TForm1.Edit1Change(Sender: TObject);
begin
  Actualiza( Edit1.Text, Edit2.Text );
end;

procedure TForm1.Edit2Change(Sender: TObject);
begin
  Actualiza( Edit1.Text, Edit2.Text );
end;
Saludos
Responder Con Cita
  #8  
Antiguo 12-08-2007
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola
No conocia esta,Def, esta genial maestro.
Saludos
__________________
Siempre Novato
Responder Con Cita
  #9  
Antiguo 12-08-2007
Avatar de ArdiIIa
[ArdiIIa] ArdiIIa is offline
Miembro Premium
 
Registrado: nov 2003
Ubicación: Valencia city
Posts: 1.481
Poder: 22
ArdiIIa Va por buen camino
A ver si lo resumimos:
Edit1 y Edit2 en su evento onChange apuntan al mismo procedure: SUMA.
Código Delphi [-]
procedure TForm1.Suma(Sender: TObject);;
begin
Edit3.Text := IntToStr( StrToIntDef(Edit1.Text,0) + StrToIntDef(Edit2.Text,0) );
end;

En el caso de que alguna de las entradas sea incorrecta (letras, espacios), no se produce error, sino el valor devuelto es cero...
__________________
Un poco de tu generosidad puede salvar la vida a un niño. ASÍ DE SENCILLO
Responder Con Cita
  #10  
Antiguo 12-08-2007
Avatar de ArdiIIa
[ArdiIIa] ArdiIIa is offline
Miembro Premium
 
Registrado: nov 2003
Ubicación: Valencia city
Posts: 1.481
Poder: 22
ArdiIIa Va por buen camino
Se me han adelantado con el DEF
__________________
Un poco de tu generosidad puede salvar la vida a un niño. ASÍ DE SENCILLO
Responder Con Cita
  #11  
Antiguo 12-08-2007
Avatar de Delphius
[Delphius] Delphius is offline
Miembro Premium
 
Registrado: jul 2004
Ubicación: Salta, Argentina
Posts: 5.582
Poder: 25
Delphius Va camino a la fama
Cita:
Empezado por droguerman
porque tu sabes los usuarios...
Es cierto, se deben comprobar los espacios en blancos, y si lo escrito es válido.. y otras cosas..

Mi código es simple, y como dije: debe ser mejorado. Mi intención es darle una idea de como proceder.

Por otro lado yo entendí que independientemente del edit en donde se cambie el valor, se calcule el total. Pues como leí esto:

Cita:
coloco en un edit1 el numero 2 y automaticamente en el edit resultado me tiene que poner un dos, si en el edit2 coloco un cinco en el edit resultado me tiene que poner el resultado de la sume(7)
Por eso yo hago "actualizar" el valor en cuanto cambie el contenido de edit1 o edit2.

Saludos,
__________________
Delphius
[Guia de estilo][Buscar]
Responder Con Cita
  #12  
Antiguo 12-08-2007
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola
Hay que indicarle a nuestro amigo Kamael que:
StrToIntDef, se usa para numeros reales
StrToFloatDef, se usa para numeros con decimales
Saludos
__________________
Siempre Novato
Responder Con Cita
  #13  
Antiguo 12-08-2007
Avatar de ArdiIIa
[ArdiIIa] ArdiIIa is offline
Miembro Premium
 
Registrado: nov 2003
Ubicación: Valencia city
Posts: 1.481
Poder: 22
ArdiIIa Va por buen camino
Son funciones muy prácticas para evitar errores.
Lo normal es ponerlo con algún número negativo para comprobar...

Ejemplo

Código Delphi [-]
If  StrToIntDef(Edit1.Text,-1) = -1 then Valor_Incorrecto
__________________
Un poco de tu generosidad puede salvar la vida a un niño. ASÍ DE SENCILLO
Responder Con Cita
  #14  
Antiguo 12-08-2007
Avatar de Kamael
Kamael Kamael is offline
Miembro
 
Registrado: ago 2007
Posts: 64
Poder: 17
Kamael Va por buen camino
sumar edits

Muchisimas gracias a todos.
Lo pondre en practica mañana.
Ahora tengo las ideas mas claras y creo que ya se como hacerlo.
Ya os comentare el resultado.
Responder Con Cita
  #15  
Antiguo 06-03-2015
Matiax13 Matiax13 is offline
Registrado
NULL
 
Registrado: nov 2014
Posts: 7
Poder: 0
Matiax13 Va por buen camino
hola, como estan?
donde tengo q poner este procedimiento
procedure TForm1.Actualiza;?
Responder Con Cita
  #16  
Antiguo 06-03-2015
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.037
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Donde quieras, al final, por ejemplo.
Responder Con Cita
  #17  
Antiguo 07-03-2015
Avatar de AgustinOrtu
[AgustinOrtu] AgustinOrtu is offline
Miembro Premium
NULL
 
Registrado: ago 2013
Ubicación: Argentina
Posts: 1.858
Poder: 15
AgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en bruto
Yo para estas cosas en lugar de TEdit prefiero usar componentes TSpinEdit, que son especificos para numeros

Código Delphi [-]
procedure TForm2.SpinEdit1Change(Sender: TObject);
begin
  Edit1.Text := IntToStr(SpinEdit1.Value + SpinEdit2.Value);
end;

Usaria el mismo evento para el OnChange de dos SpinEdit1 y SpinEdit2, y se mostraria la suma en un Edit1

Incluso se pueden dejar los SpinEdit vacios y no genera excepciones
Responder Con Cita
  #18  
Antiguo 12-03-2015
Avatar de salvica
salvica salvica is offline
Miembro
 
Registrado: mar 2004
Ubicación: Albacete (España) ... En un lugar de la Mancha ...
Posts: 304
Poder: 21
salvica Va por buen camino
Cita:
Empezado por Matiax13 Ver Mensaje
hola, como estan?
donde tengo q poner este procedimiento
procedure TForm1.Actualiza;?
Como te dice Casimiro Notevi, puedes ponerlo en cualquier sitio, pero si al procedimiento Actualiza le antepones el TForm1, OBLIGATORIAMENTE debes declararlo en la zona private o public

Saludos a tod@s
Salvica
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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
Error con edits y grids enecumene Conexión con bases de datos 4 08-03-2007 17:49:51
Validar Edits LILYBEL Internet 5 01-03-2005 18:36:57
forms y edits Rolando Varios 2 30-09-2003 23:46:02
Mascaras en Edits Un abrazo OOP 2 16-05-2003 13:57:49
Edits aitken Varios 7 06-05-2003 14:51:08


La franja horaria es GMT +2. Ahora son las 08:27:54.


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