Problema borrado de lista!!!
Publicado por Sergi (2 intervenciones) el 09/02/2012 14:21:29
Hola, alguien me podría ayudar???
He creado un checkbox con diferentes nombres y apellidos, que los tengo en una lista simple de nombres y otra de apellidos...
entonces quiero borrar aquellos nombre que sean seleccionados de la lista de nombres, y aquellos apellidos de la lista de apellidos
he creado una lista auxiliar booleana para ello, entonces va comprobando si es "true" su valor, y si lo es borra el elemento indicado.
funciona si solo se selecciona el borrar un elemento, pero si se slecciona mas de un elemento en la checkbox da error y no se por que!!
//El parametro tipo es para saber si es de la lista nombre o apellidos.
PROCEDURE borrarElementos(VAR lista_nombres, lista_apellidos: TLista; tipo:integer; lista_bool_nom, lista_bool_apell:TLista);
var
act, ant, aux_bool_p:TLista;
begin
act:=lista_nombres;
ant:=NIL;
aux_bool_p:=lista_bool_nom;
while (aux_bool_p<>NIL) do
begin
if (aux_bool_p^.info='true') then
begin
if (ant<>NIL) then
ant^.sgte:=act^.sgte
else
lista_nombres:=act^.sgte;
dispose(act);
aux_bool_p:=aux_bool_p^.sgte;
end
else
begin
aux_bool_p:=aux_bool_p^.sgte;
ant:=act;
act:=act^.sgte;
end;
end;
//Aquí vendría lo mismo para la lista de apellidos, pero sólo estoy comprobando con nombres
end;
Gracias!!
He creado un checkbox con diferentes nombres y apellidos, que los tengo en una lista simple de nombres y otra de apellidos...
entonces quiero borrar aquellos nombre que sean seleccionados de la lista de nombres, y aquellos apellidos de la lista de apellidos
he creado una lista auxiliar booleana para ello, entonces va comprobando si es "true" su valor, y si lo es borra el elemento indicado.
funciona si solo se selecciona el borrar un elemento, pero si se slecciona mas de un elemento en la checkbox da error y no se por que!!
//El parametro tipo es para saber si es de la lista nombre o apellidos.
PROCEDURE borrarElementos(VAR lista_nombres, lista_apellidos: TLista; tipo:integer; lista_bool_nom, lista_bool_apell:TLista);
var
act, ant, aux_bool_p:TLista;
begin
act:=lista_nombres;
ant:=NIL;
aux_bool_p:=lista_bool_nom;
while (aux_bool_p<>NIL) do
begin
if (aux_bool_p^.info='true') then
begin
if (ant<>NIL) then
ant^.sgte:=act^.sgte
else
lista_nombres:=act^.sgte;
dispose(act);
aux_bool_p:=aux_bool_p^.sgte;
end
else
begin
aux_bool_p:=aux_bool_p^.sgte;
ant:=act;
act:=act^.sgte;
end;
end;
//Aquí vendría lo mismo para la lista de apellidos, pero sólo estoy comprobando con nombres
end;
Gracias!!
Valora esta pregunta
0