PDA

Ver la Versión Completa : Sumar elementos de una list box


yessika19
05-01-2008, 20:08:24
hola!

sé que la pregunta que voy a ahcer debe tener una respuesta fácil, pero a mi no se me ocurre nada :p a ver si m podeis ayudar

ahora estoy trabajando con una listBox y tengo que coger cada nuevo elemento que entra, que son números, y el resultado de sumarlos lo enseño en un edit. el problema está en que no se como coger cada linea de la listBox y sumarla

lo que habia pensado hacer es:
for i:=1 to lbPrecio.Items.Count do
begin
numero:=strToFloat(LBPrecio.itemIndex); //esta línea se que está mal, pero no se como ponerlo
total:=total+numero;
end;
y "total" cambiarlo a string y pasarlo a la edit

espero que alguien entienda mas o menos lo que quiero hacer y pueda ayudarme :confused:

gracias!

DarkMan
05-01-2008, 20:32:18
Creo que esta es la solución :):
for i:=0 to lbPrecio.Items.Count-1 do
begin
numero:=strToFloat(LBPrecio.items[i]);
total:=total+numero;
end;
Edit.text:=FloatToStr(Total) ;

yessika19
05-01-2008, 20:42:58
gracias!!!!! :D:D

la cosa es que ahora me surge otro problema porque lo que quiero es que, a medida que meto datos en la listBox los vaya sumando y eseñando en un edit, cosa que no hace
he puesto
procedure TFPizzas.EEurosChange(Sender: TObject);
var
total,numero: double;
i:integer;
begin
total:=0;
for i:=0 to lbPrecio.Items.Count-1 do
begin
numero:=strToFloat(LBPrecio.items[i]);
total:=total+numero;
end;
EEuros.Text:=FloatToStr(total);
end;

tal y como m dijiste DarkMan (gracias de nuevo XD) pero no hace lo que quiero, ¿sabes si me falta añadir algo? siento ser tan pesada pero a mi esto de las interfaces m lia un poco

gracias!!!!

Caral
05-01-2008, 20:54:21
Hola

procedure TForm1.Actualiza;
var
i : integer;
numero, total: real;
begin
for i:=0 to ListBox2.Items.Count-1 do
begin
numero:=strToFloat(ListBox2.items[i]);
total:=total+numero;
end;
Edit1.text:=FloatToStr(Total) ;
end;

procedure TForm1.Edit2Change(Sender: TObject);
begin
ListBox2.Items.Add(Edit2.Text);
Actualiza;
end;

Saludos

yessika19
05-01-2008, 20:57:18
gracias Caral :D m estaba comindo la cabeza demasiad