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 17-11-2009
Avatar de lily21
lily21 lily21 is offline
Miembro
 
Registrado: nov 2009
Ubicación: Cuba, La Habana
Posts: 13
Poder: 0
lily21 Va por buen camino
Suma en un Edit

hola, Como puedo lograr que cuando el usuario ponga por ejemplo en un edit :
2+3+4 y al salir del edit , se ponga la suma de este en el mismo , que en este caso seria 9.algo asi como funciona el excel que tu pones en una casilla =2+3+4 das enter y se pone 9 en este caso.

gracias
Responder Con Cita
  #2  
Antiguo 17-11-2009
[coso] coso is offline
Miembro Premium
 
Registrado: may 2008
Ubicación: Girona
Posts: 1.678
Poder: 0
coso Va por buen camino
Hola,
deberas crear un parser. Te pongo un ejemplo:

Código Delphi [-]
function parsestring(s : string) : string;
var 
     v1,v2 : string;
     vv1,vv2 : integer;
     n : integer;
begin
     n := Pos('+',s);
     
     if n <> 0 then
     begin
           v1 := Copy(s,0,n-1);
           v2 := Copy(s,n+1,length(s) - n);

           try    vv1 := strtoint(v1);
           except vv1 := 0;
           end;

           try    vv2 := strtoint(v2);
           except  vv2 := strtoint(parsestring(trim(v2)));
           end;

           s := inttostr(vv1 + vv2);
     end;

     result := s;
end;

y en el onkeydown del edit, o en el OnExit

Código Delphi [-]
edit1.text := parsestring(edit1.text);

es solo un ejemplo con la suma. Con mas operaciones te sera muy laborioso. Un saludo.
Responder Con Cita
  #3  
Antiguo 17-11-2009
Avatar de look
look look is offline
Miembro
 
Registrado: sep 2007
Ubicación: The Shire
Posts: 656
Poder: 17
look Va camino a la fama
Cita:
Empezado por lily21 Ver Mensaje
hola, Como puedo lograr que cuando el usuario ponga por ejemplo en un edit :
2+3+4 y al salir del edit , se ponga la suma de este en el mismo , que en este caso seria 9.algo asi como funciona el excel que tu pones en una casilla =2+3+4 das enter y se pone 9 en este caso.

gracias
en esta pagina hay un componente que hace lo que tu pides , pero es de pago
__________________
all your base are belong to us
Responder Con Cita
  #4  
Antiguo 17-11-2009
Avatar de look
look look is offline
Miembro
 
Registrado: sep 2007
Ubicación: The Shire
Posts: 656
Poder: 17
look Va camino a la fama
tambien aqui
__________________
all your base are belong to us
Responder Con Cita
  #5  
Antiguo 17-11-2009
Avatar de look
look look is offline
Miembro
 
Registrado: sep 2007
Ubicación: The Shire
Posts: 656
Poder: 17
look Va camino a la fama
Cita:
Empezado por coso Ver Mensaje
Hola,
deberas crear un parser. Te pongo un ejemplo:

Código Delphi [-]function parsestring(s : string) : string; var v1,v2 : string; vv1,vv2 : integer; n : integer; begin n := Pos('+',s); if n <> 0 then begin v1 := Copy(s,0,n-1); v2 := Copy(s,n+1,length(s) - n); try vv1 := strtoint(v1); except vv1 := 0; end; try vv2 := strtoint(v2); except vv2 := strtoint(parsestring(trim(v2))); end; s := inttostr(vv1 + vv2); end; result := s; end;


y en el onkeydown del edit, o en el OnExit

Código Delphi [-]edit1.text := parsestring(edit1.text);


es solo un ejemplo con la suma. Con mas operaciones te sera muy laborioso. Un saludo.
nitido. saludos
__________________
all your base are belong to us
Responder Con Cita
  #6  
Antiguo 18-11-2009
Avatar de lily21
lily21 lily21 is offline
Miembro
 
Registrado: nov 2009
Ubicación: Cuba, La Habana
Posts: 13
Poder: 0
lily21 Va por buen camino
Smile Suma en un edit

hola , muchas gracias por responder , pero esta funcion funciona perfectamente si solo pongo en el edit por ejemplo 2+3, pero si ya pongo 2+3+5+6 .. ya me da error .. solo me sirve para sumar dos numeros , me podrias ayudar con esto ?
muchas gracias nuevamente
saludos
Responder Con Cita
  #7  
Antiguo 18-11-2009
[coso] coso is offline
Miembro Premium
 
Registrado: may 2008
Ubicación: Girona
Posts: 1.678
Poder: 0
coso Va por buen camino
La función va bien. Creo que te has confundido al transcribirla...vv2 tiene que ser inttostr(parsestring(...)), diferente que vv1. Si no es eso, fijate que sea exactamente la misma que la posteada. Un saludo.
Responder Con Cita
  #8  
Antiguo 11-01-2010
Avatar de DriverOp
DriverOp DriverOp is offline
Miembro
 
Registrado: ago 2007
Posts: 93
Poder: 17
DriverOp Va por buen camino
Aquí otro más: EvalExp

Última edición por DriverOp fecha: 22-02-2010 a las 02:36:14.
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
Suma de Registros gerasA Varios 7 22-01-2008 18:09:46
Suma StrToInt para Edit vacios cocke C++ Builder 8 28-11-2006 09:19:40
problemas con el el .Edit: qryCONSULTA.Edit McRose Conexión con bases de datos 3 07-06-2005 15:46:39
Suma de horas II YolandaM Varios 10 19-11-2003 22:05:39
Suma en currencyedit de las rx lib botones67 Varios 1 15-07-2003 21:06:34


La franja horaria es GMT +2. Ahora son las 07:15:05.


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