Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Gráficos
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 13-01-2008
Avatar de aenima
aenima aenima is offline
Registrado
 
Registrado: nov 2007
Ubicación: Madrid
Posts: 6
Poder: 0
aenima Va por buen camino
Borrar item de una lista

Hola.

Estoy haciendo un programa que tiene tres listas, una de archivos, otra de directorios y la última una lista tipo TListBox y a los lados tres botones: uno que agrega archivos, otro directorios y otro que elimina los archivos y directorios que he añadido con esos botones. Los he añadido asi: Lista.Items.Add(ListaArchivos.FileName);

Bien, los controles de los botones de agregar los ten bien porque me agrega los ficheros y directorios perfectamente a la lista pero el problema viene cuando quiero eliminar un item de la lista TListBox. Debería de seleccionar un item y cuando haga click a eliminar que se elimine de la lista.
He probado a hacerlo de múltiples formas pero no me hace nada, no me lo elimina.
Ahora mismo lo tengo así pero tampoco me funciona:

n:integer;
begin
for n:=0 to Lista.Items.Count-1 do begin
ListaElegidos.Items.Delete(ListaElegidos.ItemIndex);

Alguna sugerencia? Muchas gracias

PD: Ya lo resolví utilizando Selected y un bucle WHILE en vez de FOR porque en el último elemento daba error

Última edición por aenima fecha: 13-01-2008 a las 14:03:46.
Responder Con Cita
  #2  
Antiguo 13-01-2008
Avatar de xEsk
[xEsk] xEsk is offline
Miembro Premium
 
Registrado: feb 2006
Posts: 454
Poder: 19
xEsk Va por buen camino
Hola, está bien que lo hayas solucionado, pero el código que pusiste no tiene mucho sentido:

Código Delphi [-]
n:integer;
begin
  for n:=0 to Lista.Items.Count-1 do begin
    ListaElegidos.Items.Delete(ListaElegidos.ItemIndex);

Aquí lo que estas haciendo es recorrer todos los ítems para nada, porqué después a la hora de borrar el ítem, utilizas el valor ItemIndex, que contiene el índice del ítem seleccionado.

Saludos.
Responder Con Cita
  #3  
Antiguo 13-01-2008
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 28
Lepe Va por buen camino
Completando un poco más:

Si no tienes multiselect a true, bastaría con:
Código Delphi [-]
if listbox1.itemindex <> -1 then
  listbox1.Delete(listbox1.itemindex);

Si multiselect es true, siempre recorre los índices en orden descendente:
Código Delphi [-]
with Listbox1, Listbox1.Items do
for i:= Count -1 downto 0 do
  if Selected[i] then Delete(i);

De memoria es así puede que tenga algún error.

Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita
  #4  
Antiguo 14-01-2008
Avatar de aenima
aenima aenima is offline
Registrado
 
Registrado: nov 2007
Ubicación: Madrid
Posts: 6
Poder: 0
aenima Va por buen camino
Efectivamente, el primer código que puse no tenía mucho sentido, pero es la primera vez que hago este tipo de cosas y estoy un poco perdida

Como lo tengo con Multiselect utilice un código parecido al último puesto, pero completándolo con más código para no añadir un item que ya esté en la lista.

Muchas gracias por las respuestas
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
hints con item en lista !!!!!! david_uh Varios 7 14-07-2007 00:12:06
seleccionar item en TdbLockupListbox!!!!!! david_uh Varios 1 22-05-2007 19:19:10
Borrar lineas detalle al borrar registro maestro akinom38 Conexión con bases de datos 3 11-01-2006 10:38:07
¿Mejor heredar de una Lista o mejor introducir la Lista en un campo? Jome OOP 8 24-11-2005 17:11:16
borrar los campos de un DBGrid sin borrar los titulos de las columnas Torreblanca OOP 2 02-08-2005 00:12:52


La franja horaria es GMT +2. Ahora son las 10:54:11.


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
Copyright 1996-2007 Club Delphi