Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   OOP (https://www.clubdelphi.com/foros/forumdisplay.php?f=5)
-   -   Sumar un campo al ser checkeado en un ListView (https://www.clubdelphi.com/foros/showthread.php?t=50377)

Avellas 15-11-2007 20:11:27

Sumar un campo al ser checkeado en un ListView
 
Hola amisog del club delphi.


Mi pregunta es la siguiente, tengo un componente listview donde coloco la informacion que tragio de un query; igualmente en el listview tengo un campo check y lo que deseo hacer es que al checkear un item el sistema vaya sumando el valor de una columna del lisview.


Les agradezco de antemano la ayuda

Gracias

jhonny 15-11-2007 20:27:37

Hice la siguiente prueba y me a funcionado bien... espero que sea eso lo que necesitas :):

Código Delphi [-]
var
  i :Integer;
  Acumulado :Extended;
begin
  Acumulado := 0;
  for i := 0 to ListView1.Items.Count -1 do
  begin
    if ListView1.Items[i].Checked then
    begin
      Acumulado :=  Acumulado + StrToFloat(ListView1.Items[i].Caption);
    end;
  end;
  ShowMessage(FloatToStr(Acumulado));
end;

Avellas 15-11-2007 21:27:08

Gracias.. por la colaboración.

Pero resulta que la idea es que al checkear el campo inmediatamente totalice, no al Final

jhonny 15-11-2007 21:39:50

Cita:

Empezado por Avellas (Mensaje 246465)
Gracias.. por la colaboración.

Pero resulta que la idea es que al checkear el campo inmediatamente totalice, no al Final

Bueno, pues puedes adaptar el procedimiento que te mostre en el evento correspondiente, por ejemplo en el OnChange, asi:
Código Delphi [-]
procedure TForm1.ListView1Change(Sender: TObject; Item: TListItem;
  Change: TItemChange);
var
  i :Integer;
  Acumulado :Extended;
begin
  Acumulado := 0;
  for i := 0 to ListView1.Items.Count -1 do
  begin
    if ListView1.Items[i].Checked then
    begin
      Acumulado :=  Acumulado + StrToFloat(ListView1.Items[i].Caption);
    end;
  end;
  Label1.Caption := FloatToStr((Acumulado));
end;
Ese evento se ejecutara varias veces pero visualmente parece lo que necesitamos, si encuentras uno que se ejecute menos veces, pues sería interesante que nos lo mostraras.


La franja horaria es GMT +2. Ahora son las 03:02:12.

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