• Domingo 22 de Diciembre de 2024, 12:57

Autor Tema:  Re: Borrado de Listbox con seleccion multiple  (Leído 2313 veces)

Gelmin

  • Nuevo Miembro
  • *
  • Mensajes: 4
    • Ver Perfil
Re: Borrado de Listbox con seleccion multiple
« en: Jueves 11 de Septiembre de 2003, 20:38 »
0
: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)

Ruso

  • Nuevo Miembro
  • *
  • Mensajes: 16
    • Ver Perfil
Re: Borrado de Listbox con seleccion multiple
« Respuesta #1 en: Domingo 14 de Septiembre de 2003, 10:30 »
0
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;
_________________________________________

Si no fuera por C, usaríamos BASI, PASAL y OBOL

Gelmin

  • Nuevo Miembro
  • *
  • Mensajes: 4
    • Ver Perfil
Borrado de Listbox con seleccion multiple
« Respuesta #2 en: Miércoles 17 de Septiembre de 2003, 23:40 »
0
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: