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 13-03-2010
Avatar de Kamael
Kamael Kamael is offline
Miembro
 
Registrado: ago 2007
Posts: 64
Poder: 17
Kamael Va por buen camino
edit Str a float

Tengo varios edit y quiero pasarlos de sTr a float sin tener que hacerlo de uno en uno.
el numero de edit es superior a 30. Se que se puede hacer, de hecho lo hice, pero ya no me acuerdo.
Me podeis ayudar?.
Responder Con Cita
  #2  
Antiguo 13-03-2010
BrunoBsso BrunoBsso is offline
Miembro
 
Registrado: nov 2009
Ubicación: Berisso, Buenos Aires, Argentina
Posts: 239
Poder: 15
BrunoBsso Va por buen camino
Hola.
Sí o sí vas a tener que hacerlos uno por uno.
Podrías hacer un casting como
Código Delphi [-]
var
  I:Integer;
  F:Real;
for I:=0 to FormAlgo.ControlCount-1 do begin
  if (FormAlgo.Controls[i] is TEdit) then
    F:=StrToFloat(TEdit(FormAlgo.Controls[i]).Text);
end;
Responder Con Cita
  #3  
Antiguo 16-03-2010
Avatar de Kamael
Kamael Kamael is offline
Miembro
 
Registrado: ago 2007
Posts: 64
Poder: 17
Kamael Va por buen camino
perdon por mi tardanza en responder.
el codigo que me mandaste no no funciona, pues ala sumar dos edit y reflejarlo en el tercero en vez de sumar lo que me hace es añadir un numero al otro.
Cita:
Edit3.text := edit1.text +Edit2.Text ;
Responder Con Cita
  #4  
Antiguo 16-03-2010
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Pero, ¿en qué parte del código viste tú algo como lo que ahora pones?

Lo que está haciendo es recorrer la lista de Edits; en cada paso convierte el valor del edit actual en un número flotante y el resultado lo suma a una variable real.

Lo único que veo es que la línea:

Código Delphi [-]
F:=StrToFloat(TEdit(FormAlgo.Controls[i]).Text);

creo que deberia ser:

Código Delphi [-]
F:=F+StrToFloat(TEdit(FormAlgo.Controls[i]).Text);

pero por lo demás el código debería funcionar.

// Saludos
Responder Con Cita
  #5  
Antiguo 17-03-2010
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola kamael.

Viendo el último código que enviaste, creo que tienes un error conceptual.

Cuando realizas la asignacion:
Edit3.Text := Edit1.Text + Edit2.Text;

Aunque allí hayan almacenados dígitos numéricos, estos siempre serán tratados como caracteres.

Sumar los caracteres '1' + '2' y esperar como resultado el número 3, carece de sentido, lo que obtendrás será '12' como una cadena de caracteres y eso es lo lógico.

Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....

Última edición por ecfisa fecha: 17-03-2010 a las 02:42:18. Razón: corrección
Responder Con Cita
  #6  
Antiguo 17-03-2010
BrunoBsso BrunoBsso is offline
Miembro
 
Registrado: nov 2009
Ubicación: Berisso, Buenos Aires, Argentina
Posts: 239
Poder: 15
BrunoBsso Va por buen camino
A ver, el código que te hice yo era para que veas como almacenar un número real de un TEdit en una variable de tipo real.
Si vos precisás transformar dos TEdits en real y mostrarlo en otro deberías hacer así
Código Delphi [-]
Edit3.Text:=FloatToStr(StrToFloat(Edit1.Text)+StrToFloat(Edit2.Text))
O más expandido (pero mismo resultado)
Código Delphi [-]
//Usando 3 variables de tipo Real
F1:=StrToFloat(Edit1.Text);
F2:=StrToFloat(Edit2.Text);
F3:=F1+F2;
Edit3.Text:=FloatToStr(F3);
Yo al principio no sabía que querías sumarlas y mostrarlo en otor edit.
Vos con Edit3.Text := Edit1.Text + Edit2.Text; estás concatenando 2 TEdits en Edit3
Saludos.
Responder Con Cita
  #7  
Antiguo 21-03-2010
Avatar de Kamael
Kamael Kamael is offline
Miembro
 
Registrado: ago 2007
Posts: 64
Poder: 17
Kamael Va por buen camino
Ya veo que me explique mal. Perdón por ello.
Lo que quiero es sumar el contenido de dos edit y mostrarlo en un tercero.
Pero el problema es que no son solo tres edit, sinó que son unos veinte. entonces para evitarme crear veinte variables y asignarlas a cada una independientemente quiero hacerlo todos a la vez., y asi ahorrarme un monton de codigo.
Gracias a todos ppor preocupar y perdonad mi demora en responderos. No he estado en casa estos dias.(de Fallas en Valencia).
Un saludo
Responder Con Cita
  #8  
Antiguo 21-03-2010
BrunoBsso BrunoBsso is offline
Miembro
 
Registrado: nov 2009
Ubicación: Berisso, Buenos Aires, Argentina
Posts: 239
Poder: 15
BrunoBsso Va por buen camino
Bueno, acá te dejo una solución así lo aprendés y podés implementarlo.
Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);
var
  I:Integer;
  F:Real;
begin
  //Tomar en cuenta que el separador decimal (DecimalSeparator) puede ser . o ,
  F:=0;
  for I := 0 to ControlCount-1 do begin
    if (Controls[i] is TEdit) then begin
      if TEdit(Controls[i]).Tag<>1 then
        F:=F+StrToFloat(TEdit(Controls[i]).Text);
    end;
  end;
  EdResultado.Text:=FloatToStr(F);
end;
Para ese código usé 4 TEdits llamados EdSuma1, EdSuma2, EdSuma3 y EdSuma4, un botón Button1 y un TEdit EdResultado.
La propiedad Tag de los TEdits de sumas la dejé en 0 y la de EdResultado la dejé en 1 para encontrarlo fácil.
Tenés que tener en cuenta que el DecimalSeparator depende del lenguaje del SO.
Podés detectar cuando se escribe una coma o un punto y decidir vos qué caracter tiene que ser, pero eso ya es aparte de lo que necesitás.
Saludos!
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
FLOAT de los ... no va! vivamotos C++ Builder 7 05-01-2009 23:15:15
problema al convertir valor en edit de forma str a float jirbert Varios 25 03-10-2008 23:48:02
dar formato float a un edit Jheysson13 Varios 6 05-07-2008 22:30:58
convertir edit de string a float Kamael OOP 1 11-08-2007 03:33:23
problemas con el el .Edit: qryCONSULTA.Edit McRose Conexión con bases de datos 3 07-06-2005 15:46:39


La franja horaria es GMT +2. Ahora son las 12:36:33.


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