Club Delphi  
    Paypal   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

Coloboración Paypal con ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 13-11-2014
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 38
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
  #2  
Antiguo 13-11-2014
Avatar de danielmj
danielmj danielmj is offline
Miembro
 
Registrado: jun 2011
Posts: 383
Poder: 16
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
  #3  
Antiguo 13-11-2014
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 38
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
  #4  
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: 21
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
  #5  
Antiguo 13-11-2014
Avatar de danielmj
danielmj danielmj is offline
Miembro
 
Registrado: jun 2011
Posts: 383
Poder: 16
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
  #6  
Antiguo 13-11-2014
Avatar de danielmj
danielmj danielmj is offline
Miembro
 
Registrado: jun 2011
Posts: 383
Poder: 16
danielmj Va por buen camino
Hola tiammat,

Por cierto, te va lo sumerio y esas cosas? lo digo por tu nick

Bueno, tienes razon, pero mi nivel en delphi es bajito bajito, y hay soluciones que no se me ocurren como a otros con mas experiencia. Por ejemplo, ya me estoy peleando otra vez con la lista, por que ahora si elimino un elemento listado, lo normal es que se reste tambien del total a pagar, pues bien, ya me esta jorobando otra vez, con access violation y "list items out of bouns" o algo así

Código Delphi [-]
procedure TrForm.Eliminarseleccionado1Click(Sender: TObject);
var
  i: integer;

begin
  for i:= 0 to lista.Items.Count -1 do
    if lista.Items.Item[i].Selected then
      begin
        lista.Items.Item[i].Delete;
        plista.Items.Item[i].Delete;
        label35.Caption:= FloatToStr(StrToFloat(label35.Caption)-(StrToFloat(lista.Items.Item[i].SubItems[Lista.Columns.Count-3]))); //---> sé que el error está aquí ¿pero donde?
      end;
end;

Y bueno, en eso estoy ahora.
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
  #7  
Antiguo 14-11-2014
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 38
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.

Seguramente este par de funciones te simplificarán la tarea:
Código Delphi [-]
// Devuelve la suma de la columna en cuestión
function AmountTotal(LV: TListView): Double;
var
  i: Integer;
  li: TListItem;
begin
  Result:= 0;
  for i:= LV.Items.Count-1 downto 0 do
  begin
    li:= LV.Items.Item[i];
    Result:= Result + StrToFloat(li.SubItems[LV.Columns.Count-2]);
  end;
end;

// Borra items seleccionados ( MultiSelect = True )
procedure DelSelectedItems(LV: TListView);
var
  i: Integer;
begin
  for i:= LV.Items.Count-1 downto 0 do
    if LV.Items[i].Selected then
      LV.Selected.Delete
end;

El uso:
Código Delphi [-]
// Mostrar total
procedure TForm1.btnTotalClick(Sender: TObject);
begin
  Label1.Caption:= FormatFloat('0.00', AmountTotal(ListView1));
end;

// Eliminar items seleccionados y seguido mostrar total
procedure TForm1.btnDeleteClick(Sender: TObject);
begin
  DelSelectedItems(ListView1);
  Label1.Caption:=  FormatFloat('0.00', AmountTotal(ListView1));
end;
Por si tenes dificultad para implementarlas te adjunto un ejemplo funcional.

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

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #8  
Antiguo 14-11-2014
Avatar de danielmj
danielmj danielmj is offline
Miembro
 
Registrado: jun 2011
Posts: 383
Poder: 16
danielmj Va por buen camino
hola ecfisa, acabo de mirarlo y de implementarlo, todo lo que ya tenia lo sigo conservando entre {} funciona pero creo que lo de la funcion es mas eficiente.
Solo tengo una duda, pero creo que se por donde van los tiros, me refiero a la variable "result" no la declaras en ningun sitio y no da error, por lo que supongo que delphi la crea automaticamente al iniciar la funcion y en este caso es double ¿es correcto?

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
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 20:28:57
sumando dos float no pbtengo valor real lmpadron C++ Builder 2 12-09-2011 21:33:03
Sumando columnas con Qreport ? Coco_jac Varios 5 27-01-2006 14:57:56
error sumando campos weke SQL 2 02-06-2004 14:52:33
Sumando columnas/Filas StartKill Firebird e Interbase 5 27-05-2004 09:42:32


La franja horaria es GMT +2. Ahora son las 03:27:34.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi