Ver Mensaje Individual
  #1  
Antiguo 13-11-2014
Avatar de danielmj
danielmj danielmj is offline
Miembro
 
Registrado: jun 2011
Posts: 383
Reputación: 16
danielmj Va por buen camino
eliminar elementos de lista y restar valores

Hola... de nuevo

Tengo un problema con la lista, exactamente a la hora de borrar. Este es el código:

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

begin
  for i:= 0 to lista.Items.Count -1 do
    if lista.Items.Item[i].Selected then
      begin
        list:= Lista.Items.Item[i];
        valor1:= StrToFloat(list.SubItems[Lista.Columns.Count-3]);
        label35.Caption:= FloatToStr(StrToFloat(label35.Caption)-valor1);
        lista.Items.Item[i].Delete;
        plista.Items.Item[i].Delete;
      end;
end;

* Borrar, borra los elementos seleccionados sin problemas
* A medida que borra, va restando del total a pagar.... pero:

Aquí se aplica eso del metodo LIFO en toda su extensión, y lo digo por que para que no falle, el primero en borrar tiene que ser el ultimo en entrar. Siempre y cuando seleccione desde el ultimo en entrar, todo va bien, ahora si tengo por ejemplo 5 articulos y empiezo a borrar por el primero o cualquiera que no sea el ultimo, da error "access vioation".

Lo he mirado y remirado y no lo veo, se me escapa o no se encontrar el error, siento tener que ser tan pesado pero si no os pido ayuda no avanzo.
Lo que si me gustaría, si no es mucho pedir, es que me indicarais con comentarios junto al codigo donde y por que falla.

Lo dicho, perdonad si estoy pesado.
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