SoloCodigo
Programación General => Delphi => Mensaje iniciado por: Gelmin en Jueves 11 de Septiembre de 2003, 20:38
-
:question:
Tengo un problemita...
Quiero que un listbox que tiene seleccion multiple, al presionar la tecla 'Delete' se borren todos los items que estén seleccionados.
lo he intentado con un for
for i:=0 to ListBox1.items.count-1 do
if listbox1.items.selected then
listbox1.items.delete;
me borra los que tengo seleccionados, pero me deja uno sin borrar
y me envia un error que tiene algo como 'Out of baunds (1)' o algo por el estilo lo corro paso a paso y veo que se van borrando los items seleccionados pero el 'ListBox1.items.count' no actualiza rapidamente todo lo que se borra y se queda atrás, ¿hay alguna otra forma de hacerlo? o que le puedo hacer a ese codigo.
Saludos...!
Gelmin Martínez (NICARAGUA)
-
Prueba a hacerlo en orden inverso, es decir, empezando por el último hasta el primero. Para esto, cambia el for que tu tienes pro el siguiente:
for i:=(ListBox1.Items.Count -1) downto 0 do;
-
Gracias por el comentario lo solucione cambiando el codigo a la sig manera:
i:= ListBox1.Items.Count - 1;
while ListBox1.SelCount > 0 do
begin
if ListBox1.Selected then
ListBox1.Items.Delete(i);
Dec(i);
end; //while:
Saludos Gelmin(Nicaragua)
good: