Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
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-11-2014
Avatar de danielmj
danielmj danielmj is offline
Miembro
 
Registrado: jun 2011
Posts: 383
Poder: 13
danielmj Va por buen camino
sumando valores de un listview

Hola, buenos dias a todos

Estoy intentando sumar el contenido de una columna dada de un listview, pero me tira el siguiente error:

Cita:
[dcc64 Error] datos.pas(147): E2250 There is no overloaded version of 'FloatToStr' that can be called with these arguments
Mi código es este:
Código Delphi [-]
...
for i:= 0 to lista.Items.Count -1 do
        total:= total + (FloatToStr(lista.Items[9].Caption));
...

Luego de probar varias cosas, aquí en el foro encontre este hilo supongo que no es algo muy complicado, pero no sé por qué a mi me da error.
¿alguna sugerencia? Por cierto, la variable total está definida como "extended"

Gracias y saludos.
__________________
La juventud pasa, la inmadurez se supera, la ignorancia se cura con la educación, y la embriaguez con la sobriedad, pero la estupidez dura para siempre. Aristofanes.
Responder Con Cita
  #2  
Antiguo 12-11-2014
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 danielmj.
Cita:
Empezado por danielmj Ver Mensaje
...
Estoy intentando sumar el contenido de una columna dada de un listview, pero me tira el siguiente error:
Cita:
[dcc64 Error] datos.pas(147): E2250 There is no overloaded version of 'FloatToStr' that can be called with these arguments
...
Ese error se produce por que estas intentando convertir una cadena a número flotante con la función FloatToStr cuyo trabajo es precisamente el inverso. La función indicada para ese caso es StrToFloat.

Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #3  
Antiguo 12-11-2014
Avatar de danielmj
danielmj danielmj is offline
Miembro
 
Registrado: jun 2011
Posts: 383
Poder: 13
danielmj Va por buen camino
Hola ecfisa, es cierto, después de enviar el post me di cuenta y lo cambié pero ahora después de cambiarlo me encuentro con esto:



El código lo cambié a esto (y la variable total la cambie de extended a real):

Código Delphi [-]
...
      for i:= 0 to lista.Items.Count -1 do
        begin
          total:= total + (StrToFloat(lista.Items[9].Caption));
          rForm.Label35.Caption:= FloatToStr(total);
        end;
...

Y si en cambio la variable la sigo definiendo como "extended", me tira este otro error:



Si en ese dialogo pulso sobre "break" me marca la siguiente linea:


Así que he pasado de un error por descuido a otro sobre el que no tengo ni idea ni control (siendo honesto) y obviamente no sé muy bien como solucionarlo.
Un saludo y gracias por tu tiempo.
__________________
La juventud pasa, la inmadurez se supera, la ignorancia se cura con la educación, y la embriaguez con la sobriedad, pero la estupidez dura para siempre. Aristofanes.

Última edición por danielmj fecha: 12-11-2014 a las 15:23:09.
Responder Con Cita
  #4  
Antiguo 12-11-2014
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 danielmj.

Revisa que exista el índice 9 (lista.Items[9].Caption).

Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #5  
Antiguo 12-11-2014
Avatar de danielmj
danielmj danielmj is offline
Miembro
 
Registrado: jun 2011
Posts: 383
Poder: 13
danielmj Va por buen camino
Hola de nuevo ecfisa,

Mira la captura del listview con su distribución de columnas sería esta:


El codigo es este:
Código Delphi [-]
for i:= 0 to lista.Items.Count -1 do
begin
     total:= total + (StrToFloat(lista.Items.Item[10].Caption ));
     Label35.Caption:= FloatToStr(total);
end;

Me estaba liando con el indice, no contaba con la columna 0 que no se ve por eso de tener el width a 0. En lugar de poner 10, usaba el indice 9.
A parte de eso, lo unico que he cambiado es que esta parte del codigo ahora se inicia en el oncreate del formulario. He hecho estos cambios y ya no tira ningun error, eso si, sigue sin sumarme nada. Ahora me pondre con eso para que sume todas las cantidades.

Gracias y un saludo.
__________________
La juventud pasa, la inmadurez se supera, la ignorancia se cura con la educación, y la embriaguez con la sobriedad, pero la estupidez dura para siempre. Aristofanes.
Responder Con Cita
  #6  
Antiguo 12-11-2014
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.020
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Código Delphi [-]
for i:= 0 to lista.Items.Count -1 do
begin
     total:= total + (StrToFloat(lista.Items.Item[ i ].Caption ));
     Label35.Caption:= FloatToStr(total);
end;

Última edición por Casimiro Notevi fecha: 12-11-2014 a las 20:20:44.
Responder Con Cita
  #7  
Antiguo 12-11-2014
Avatar de danielmj
danielmj danielmj is offline
Miembro
 
Registrado: jun 2011
Posts: 383
Poder: 13
danielmj Va por buen camino
Hola casimiro, gracias pero me temo que no funciona. Practicamente he copiado y pegado tu código y no suma nada, lo unico que hace es meter en "label35.caption" el precio del ultimo articulo introducido, pero no suma este con los anteriores.



La columna de al lado de "precio" está vacia por que aún ando liado con ella para agregar elementos desde otro formulario.

Como puedes ver en la captura, hace eso, mostrar el ultimo precio introducido pero no los suma.

Saludos
__________________
La juventud pasa, la inmadurez se supera, la ignorancia se cura con la educación, y la embriaguez con la sobriedad, pero la estupidez dura para siempre. Aristofanes.
Responder Con Cita
  #8  
Antiguo 12-11-2014
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.020
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
No entiendo el contexto, ¿puedes explicarlo y también poner el código que usas, y qué valores tiene esa lista y cómo y dónde lo asignas?
Responder Con Cita
  #9  
Antiguo 12-11-2014
Avatar de danielmj
danielmj danielmj is offline
Miembro
 
Registrado: jun 2011
Posts: 383
Poder: 13
danielmj Va por buen camino
Hola,

mira el siguiente es el codigo del evento oncreate:
Código Delphi [-]
procedure TrForm.FormCreate(Sender: TObject);
var
  i: integer;
  total: extended;
//  total2: extended;

begin
  total:= 0;
  for i:= 0 to lista.Items.Count -1 do
    begin
//      total:= total + (StrToFloat(lista.Items.Item[i].Caption )); //total + (StrToFloat(lista.Items.Item[10].SubItems[i]));// .Caption ));
//      total2:= StrToFloat(label35.Caption) + total;
//      Label35.Caption:= FloatToStr(total);// label35.Caption  FloatToStr(total);

        total:= total + (StrToFloat(lista.Items.Item[ i ].Caption ));
        Label35.Caption:= FloatToStr(total);
    end;
end;

**Lo que está como comentario, son pruebas que he ido haciendo sin mayor importancia **

Por otra parte, el código que le manda el valor precio a la lista (TlistView) es este:
Código Delphi [-]
procedure TpDatos.Button2Click(Sender: TObject);
var
  valores : array[1..100 , 1..100] of longint;
  i,j, valor: longint;

begin
  
  ...


    with rForm.lista.Items.Add do
    begin

    ...
     if Form1.ch3.Checked then
        subItems.Add('Si')
      else
        subItems.Add('No');

      if Form1.ch4.Checked then
        subItems.Add('Si')
      else
        subItems.Add('No');
      SubItems.Add(form1.Label17.Caption);
    ...
    end;

...
end;

A su vez, Label17 parte del formulario 1 y almacena la suma de los precios segun los articulos seleccionados por el cliente. Al hacer clic sobre el boton2 se envia el valor de label17 del formulario 1 directamente a la columna de precios de la lista. Así cada vez que se agregan nuevos articulos, al final, en el oncreate del rForm (ver más arriba), debería sumar esa columna de precios, pero como has visto solo muestra el valor del ultimo elemento introducido en la lista.

Espero haberme explicado mejor ahora. Otra cosa, lo del label17 del formulario 1 que va directamente a la lista del formulario rForm... etc sé que no es lo mas elegante ni lo mas eficiente, pero no conozco otra forma de hacerlo, quiero decir, sin saltar de un form a otro.

Un saludo.
__________________
La juventud pasa, la inmadurez se supera, la ignorancia se cura con la educación, y la embriaguez con la sobriedad, pero la estupidez dura para siempre. Aristofanes.
Responder Con Cita
  #10  
Antiguo 13-11-2014
Avatar de danielmj
danielmj danielmj is offline
Miembro
 
Registrado: jun 2011
Posts: 383
Poder: 13
danielmj Va por buen camino
Sigo sin poder sumar nada, y probando cosas, he situado un boton en el formulario y en su evento clic, el siguiente codigo:
Código Delphi [-]
label36.Caption:= lista.Items.Item[3].SubItems[5]

Mi pregunta es ¿tal como está esa linea debería mostrar en el label36, el valor 5 de la columna 3 del listview? por que no entiendo muy bien, y esa linea da error cuando pulso el boton.

La idea es saber si almacena o no valores en la etiqueta y de este modo ver si se suman valores de la lista o no.

Gracias y un saludo.
__________________
La juventud pasa, la inmadurez se supera, la ignorancia se cura con la educación, y la embriaguez con la sobriedad, pero la estupidez dura para siempre. Aristofanes.
Responder Con Cita
  #11  
Antiguo 13-11-2014
Avatar de danielmj
danielmj danielmj is offline
Miembro
 
Registrado: jun 2011
Posts: 383
Poder: 13
danielmj Va por buen camino
Hola de nuevo,

he cambiado el codigo a esto:
Código Delphi [-]
procedure TrForm.FormActivate(Sender: TObject);
var
  i: integer;
  total: extended;
  total2: TStringList; //variable de pruebas

begin
  total2.Create;
  for i:= 0 to lista.Items.Count -1 do
    begin
      total2.Add(lista.Items[i].SubItems[9]); //Esta linea da error "access violation"
      total:= total + strToFloat(total2.Text) ; //(StrToFloat(lista.Items.Item[i].SubItems[11]));
      Label35.Caption:= FloatToStr(total);
      label36.Caption:= total2.Text;
    end;
end;

He intentado basarme en este código:
Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);
var
   i : Integer;
   StrList : TStringList;
begin
   StrList := TStringList.Create;
   StrList.Duplicates := dupIgnore;
   StrList.Sorted := True;
   for i := ListView1.Items.Count-1 downto 0 do
   begin
      if LowerCase(ListView1.Items[i].SubItems[0]) = LowerCase(Edit1.Text) then
         StrList.Add(ListView1.Items[i].SubItems[0])
      else
         ListView1.Items.Delete(i);
   end;
   ShowMessage(StrList.Text);
   StrList.Free;
end;

Que peternece a este post http://www.clubdelphi.com/foros/showthread.php?t=82673, ahí se usa un messagebox para mostrar el valor y yo uso una etiqueta, creo que es la unica diferencia, aun asi, no me funciona. Ni puedosumar los valores de una columna ni me muestra en el label el contenido de una celda de la lista.
Ya estoy desesperao, incluso he cerrado delphi varias veces cabreao y al rato vuelvo a insistir en vano.

En fin, saludos.
__________________
La juventud pasa, la inmadurez se supera, la ignorancia se cura con la educación, y la embriaguez con la sobriedad, pero la estupidez dura para siempre. Aristofanes.

Última edición por danielmj fecha: 13-11-2014 a las 13:51:20.
Responder Con Cita
  #12  
Antiguo 13-11-2014
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 Daniel.
Cita:
Empezado por danielmj Ver Mensaje
...
Ya estoy desesperao, incluso he cerrado delphi varias veces cabreao y al rato vuelvo a insistir en vano.
No desesperes que algo va a salir...

Revisa el demo que te adjunto a ver si es lo que estás buscando.

Saludos
Archivos Adjuntos
Tipo de Archivo: zip danielmj.zip (4,1 KB, 3 visitas)
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #13  
Antiguo 13-11-2014
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.020
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Pero, te estás liando tú solo. Divide y vencerás.
Antes pregunté y no has contestado: ¿dónde está el código que da los valores a la lista?, ¿qué valore son?
Responder Con Cita
  #14  
Antiguo 13-11-2014
Avatar de danielmj
danielmj danielmj is offline
Miembro
 
Registrado: jun 2011
Posts: 383
Poder: 13
danielmj Va por buen camino
Hola, Casimiro y ecfisa,

Al primero (casimiro), el código que envia los datos a la lista es este:

Form1. button2.click.... //envia datos al tercer formulario (rForm), que contiene la lista.

Código Delphi [-]
Public
    { Public declarations }

    precios : array[0..8] of Real;
....

procedure TForm1.Button2Click(Sender: TObject);
begin
  case cmbHebillas.ItemIndex of
    0: precios[0]:= 0.30;
    1: precios[1]:= 0.35;
    2: precios[2]:= 0.60;
    3: precios[3]:= 1.00;
    4: precios[4]:= 1.20;
    5: precios[5]:= 1.30;
    6: precios[6]:= 1.70;
    7: precios[7]:= 1.50;
    8: precios[8]:= 1.50;
  end;

  i:= (StrToFloat(label9.Caption)+StrToFloat(label10.Caption)+StrToFloat(label11.Caption)+
  StrToFloat(label12.Caption)+StrToFloat(label13.Caption)+StrToFloat(label14.Caption)+
  StrToFloat(label15.Caption)+StrToFloat(label16.Caption));

  label17.Caption:= FormatFloat('0.00',i); //-----------------------------> Uso una etiqueta para almacenar el valor de i (no sé si será lo mas correcto)
  rForm.Label35.Caption:= FormatFloat('0.00',i*StrToInt(edit1.Text)); //---> Esta etiqueta "label35", es la que tiene que mostrar la suma de todas las cantidades en el rForm (último formulario que contiene la lista)
  pDatos.showModal; //.......................> Siguiente formulario donde se piden los datos de contacto y direcciones. (pDatos)
End;

Segundo formulario (pDatos)
Código Delphi [-]
procedure TpDatos.Button2Click(Sender: TObject);
var
  valores : array[1..100 , 1..100] of longint; //----------> Array para obtener un valor aleatorio que concatenado al telef. del cliente me daría la referencia del pedido.
  i,j, valor: longint;                                  //----------> variables locales para dos "For". Usadas para recorrer el array

begin
  if (cmbProvincia.Text = '') then
    button2.Enabled:= false
  else
    button2.Enabled:= true;

  for i:= 0 to 99 do                                 //-----------> Desde aquí...
    for j:= 0 to 99 do
      begin
        valor:= random(valores[i,j]);
        label8.Caption:= 'R'+IntToStr(valor);
      end;
  with rForm.plista.Items.Add do
    begin
      subItems.Add(mask1.Text+'_'+label8.Caption); //------> ...hasta aquí para generar la referencia del pedido. Y desde aquí empieza a enviar datos a la segunda lista (plista) del siguiente formulario (rForm). 
                                                                                  //Con esta lista no tengo problemas, así que no la comento.
      SubItems.Add(edit1.Text);
      SubItems.add(edit2.Text);
      SubItems.add(edit3.Text);
      SubItems.add(cmbProvincia.Text);
      SubItems.add(mask2.Text);
      SubItems.add(mask1.Text);
    end;

    with rForm.lista.Items.Add do //........................> Desde aquí 
    begin
      subItems.Add(mask1.Text+'_'+label8.Caption);
      SubItems.Add(Form1.cmbHebillas.Text);
      SubItems.add(Form1.Label7.Caption+', '+form1.Label8.Caption);

      if Form1.opc1.Checked then
        subItems.Add(form1.opc1.Caption);

      if Form1.opc2.Checked then
        subItems.Add(form1.opc2.Caption);

      if Form1.opc3.Checked then
        subItems.Add(Form1.opc3.Caption);


      if Form1.ch1.Checked then
        subItems.Add('Si')
      else
        subItems.Add('No');

      if Form1.ch2.Checked then
        subItems.Add('Si')
      else
        subItems.Add('No');

      if Form1.ch3.Checked then
        subItems.Add('Si')
      else
        subItems.Add('No');

      if Form1.ch4.Checked then
        subItems.Add('Si')
      else
        subItems.Add('No');

      SubItems.Add(form1.Label17.Caption);
      SubItems.Append(form1.edit1.Text); //....................> El edit1, envia las cantidades de un mismo articulo a la lista.

    end; //.................................................................> hasta aquí, envía datos a la lista 1 (llamada "lista" en formulario)

  with rForm do
    begin
      Label4.Caption:= edit1.Text;
      Label2.Caption:= mask1.Text+'_'+pDatos.label8.Caption;
      Label6.Caption:= edit2.Text;
      Label8.Caption:= edit3.Text;
      label10.Caption:= cmbProvincia.Text;
      label12.Caption:= mask2.Text;
      label14.Caption:= mask1.Text;
    end;
  rForm.showModal;
End.

Por ultimo el rForm que contiene la lista:
Código Delphi [-]
procedure TrForm.FormActivate(Sender: TObject);
var
  i: integer;
  total: extended;
  total2: TStringList; //variable de pruebas

begin
  total2.Create;
  for i:= 0 to lista.Items.Count -1 do
    begin
      total2.Add(lista.Items[i].SubItems[9]);
      total:= total + strToFloat(total2.Text) ; //(StrToFloat(lista.Items.Item[i].SubItems[11]));
      Label35.Caption:= FloatToStr(total);
      label36.Caption:= total2.Text;
    end;
end;

De este último trozo, label35 no muestra la suma de nada, tan solo el precio del ultimo articulo introducido en la lista. Y la linea que hace mencion a "total2",da error de "access violation"
Ya he probado con todos los indices por si meto alguno que no exista, pero no hay forma.

Espero no haberme liado explicando todo.

Hola ecfisa, ahora me pongo con tu demo, a ver si consigo algo, estuve escribiendo este post antes de mirarlo, en cuanto sepa algo te digo.

Gracias a los dos, con lo que vaya surgiendo os comento, y si empiezo a rallar la pesadez decirmelo eh.
Un saludo.
__________________
La juventud pasa, la inmadurez se supera, la ignorancia se cura con la educación, y la embriaguez con la sobriedad, pero la estupidez dura para siempre. Aristofanes.

Última edición por danielmj fecha: 13-11-2014 a las 16:41:34.
Responder Con Cita
  #15  
Antiguo 13-11-2014
Avatar de danielmj
danielmj danielmj is offline
Miembro
 
Registrado: jun 2011
Posts: 383
Poder: 13
danielmj Va por buen camino
Hola ecfisa,

He mirado tu demo, la he puesto a andar y tira bien, va sin problemas. Ahora copio y pego tu codigo (el del boton) + la constante maxitem de la seccion implementation, lo acomodo a mi programa, le cambio los nombres de los controles para que no de error y esas cosas y lo que pasa es esto https://www.youtube.com/watch?v=IFnz...ature=youtu.be

Si, he llegado a un punto, que ya no sé que hacer para que funcione el asunto, y he optado por hacer una captura de video y que veais los pasos que sigo hasta que salta la liebre (el error).

Saludos y gracias.

Tu código modificado:

...
implementation
Código Delphi [-]
const
MAXITEMS = 10;
...

procedure TrForm.Button5Click(Sender: TObject);
var
  i: Integer;
  total: Double;
  li: TListItem;

begin
  total:= 0;
  for i:= 0 to MAXITEM -1 do
  begin
    li:= Lista.Items.Item[i];
    total:= total + StrToFloat(li.SubItems[Lista.Columns.Count-1]);
  end;
  label36.Caption:= FormatFloat('0.00', total)
  //ShowMessage(FormatFloat('0.00', total));
end;
__________________
La juventud pasa, la inmadurez se supera, la ignorancia se cura con la educación, y la embriaguez con la sobriedad, pero la estupidez dura para siempre. Aristofanes.

Última edición por danielmj fecha: 13-11-2014 a las 17:30:25.
Responder Con Cita
  #16  
Antiguo 13-11-2014
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 Daniel.

Es que el índice debería ser
Código Delphi [-]
...
  total:= total + StrToFloat(li.SubItems[Lista.Columns.Count-2]);
O dicho de otro modo: Count - 1 - columna 0 (que no usas) , es decir que no sería 9 sino 8.

Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #17  
Antiguo 13-11-2014
Avatar de danielmj
danielmj danielmj is offline
Miembro
 
Registrado: jun 2011
Posts: 383
Poder: 13
danielmj Va por buen camino
Hola ecfisa, he probado a poner ".columns.count -2" pero entonces pasa esto:



Asi que, sigo igual, sin poder sumar nada.

Un saludo y gracias por tu tiempo.
__________________
La juventud pasa, la inmadurez se supera, la ignorancia se cura con la educación, y la embriaguez con la sobriedad, pero la estupidez dura para siempre. Aristofanes.
Responder Con Cita
  #18  
Antiguo 13-11-2014
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 Daniel.

Acabo de mirar el video, fijate que la constante MAXITEM es un valor arbitrario que usé solo para el ejemplo.

En el video que mostras intenta recorrer diez items cuando sólo hay dos ingresados, deberías usar:
Código Delphi [-]
var
  i: Integer;
  total: Double;
  li: TListItem;
begin
  total:= 0;
  for i:= 0 to ListView1.Items.Count-1 do // (MAXITEM no)
  begin
    li:= ListView1.Items.Item[i];
    total:= total + StrToFloat(li.SubItems[ListView1.Columns.Count-2]);
  end;
  ShowMessage(FormatFloat('0.00', total));
end;

Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #19  
Antiguo 13-11-2014
Avatar de TiammatMX
TiammatMX TiammatMX is offline
Miembro
 
Registrado: jun 2006
Ubicación: Universo Curvo\Vía Láctea\Sistema Solar\Planeta Tierra\América\México\Puebla\Heróica Puebla de Zaragoza\Jardines de San Manuel\Home
Posts: 746
Poder: 18
TiammatMX Va camino a la fama
No veo dónde está la complicación..., si en lugar de sumar EL CONTENIDO del TListView en ése momento, sumaras LOS DATOS QUE COMPONEN el TListView mientras lo llenas antes de mostrarlo...

Cuestión de pensar lateralmente para resolver un problema...
__________________
Felipe Eduardo Ortiz López. Delphi programmers does it recursively...

"Un programador, es un creador de universos en donde sólo él es responsable. Universos de complejidad prácticamente ilimitada que se puede crear en forma de programas de ordenador." - Joseph Weizenbaum.

Témele a los profetas... y a aquellos que están listos para morir por "la verdad", ya que como regla general hacen morir a muchos otros con ellos, frecuentemente antes que ellos, y a veces en lugar de ellos. — Umberto Eco
Responder Con Cita
  #20  
Antiguo 13-11-2014
Avatar de danielmj
danielmj danielmj is offline
Miembro
 
Registrado: jun 2011
Posts: 383
Poder: 13
danielmj Va por buen camino
Hola ecfisa

muchas gracias!!!! por que no está aquí el icono ese de la cabeza dandose golpes con el pc, sino lo pondría. Por fin ha funcionado, solo he tenido que poner "-3" en el .columns.count para hacer referencia a la columna que guarda las cantidades.
Debo reconocer, que estaba enfrascado en el "lista.items.count" y no le hacia caso al "columns.count" ese tambien ha sido un error por mi parte.

Ahora tengo una pelea nueva con el boton "volver atras" que cuando me lleva de regreso al formulario anterior, limpia la lista y cuando regreso, solo tengo el ultimo elemento añadido, pero bueno eso no me preocupa, en comparacion es un mal menor, que espero resolver pronto.

Muchas gracias otra vez, tanto a ti como a casimiro y a todos los que han prestado su ayuda.
Un saludo.
__________________
La juventud pasa, la inmadurez se supera, la ignorancia se cura con la educación, y la embriaguez con la sobriedad, pero la estupidez dura para siempre. Aristofanes.
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 Sumando Columnas SQL martini002 Conexión con bases de datos 44 25-08-2012 21:28:57
sumando dos float no pbtengo valor real lmpadron C++ Builder 2 12-09-2011 22:33:03
Sumando columnas con Qreport ? Coco_jac Varios 5 27-01-2006 15:57:56
error sumando campos weke SQL 2 02-06-2004 15:52:33
Sumando columnas/Filas StartKill Firebird e Interbase 5 27-05-2004 10:42:32


La franja horaria es GMT +2. Ahora son las 10:20:30.


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