Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 25-04-2011
annieruci annieruci is offline
Miembro
NULL
 
Registrado: feb 2011
Posts: 32
Poder: 0
annieruci Va por buen camino
Borrar varios elementos de un TreeView

Hola a todos tengo el siguiente problema:
Tengo dos treeview y 2 botones, lo que me hace falta hacer es seleccionar un hijo del treview1 y que cuando doy al boton se pasen para el treview2, para 1 solo elementos todo muy feliz, pero si me seleccionan mas de uno por ejemplo 2 elementos me da que se va de rango.
Código Delphi [-]
procedure TForm1.SpeedButton1Click(Sender: TObject);
var
  cant: Integer;
  i: Integer;
begin
Seleccionados := TStringList.Create;
cant := TreeView1.SelectionCount;
for i := 0 to TreeView1.Items.Count-1 do
   begin
    if TreeView1.Items[i].Selected then
     begin
      TreeView2.Items.AddChild( nil, TreeView1.Items[i].Text);
      TreeView1.Items[i].Destroy;
      Dec(cant);
     end;
     if cant = 0 then
       Break;
    end;
end;
Aqui esta todo el codigo el error ocurre a partir de que borro los elementos del treeview1, si no lo borro me los copia bien y todo pero si no me da error de rango o me borra el que no es.

Saludos

Última edición por ecfisa fecha: 25-04-2011 a las 17:27:17. Razón: Etiquetas [DELPHI] y [/DELPHI]
Responder Con Cita
  #2  
Antiguo 25-04-2011
Avatar de Caro
*Caro* Caro is offline
Moderadora
 
Registrado: jul 2004
Ubicación: Cochabamba, Bolivia
Posts: 2.544
Poder: 22
Caro Va por buen camino
Hola annieruci, prueba de esta forma:

Código Delphi [-]
    for i:= TreeView1.SelectionCount-1 downto 0 do
     begin
      TreeView2.Items.AddChild( nil, TreeView1.Items[i].Text);
      TreeView1.Selections[i].Delete;
     end;

No necesitas recorrer todo el treview para encontrar los seleccionados.

Saluditos
__________________
Disfruten cada minuto de su vida a lado de sus seres queridos como si fuese el ultimo, uno nunca sabe lo que puede pasar.
Responder Con Cita
  #3  
Antiguo 25-04-2011
annieruci annieruci is offline
Miembro
NULL
 
Registrado: feb 2011
Posts: 32
Poder: 0
annieruci Va por buen camino
nada

ya habia probado esa solucion pero no me resulta, hay algun problema en el oreden en que selecciono los elementos, si los selecciono de arriba hacia abajo y el for esta invertido me da error, si selecciono dos consecutivos me da error, hay pasa algo extraño que me gustaria saber que es.
Responder Con Cita
  #4  
Antiguo 25-04-2011
annieruci annieruci is offline
Miembro
NULL
 
Registrado: feb 2011
Posts: 32
Poder: 0
annieruci Va por buen camino
una posible solucion seria cambiarle el padre al treenode seleccionado
alguien sabe como hacerlo???
Responder Con Cita
  #5  
Antiguo 25-04-2011
Avatar de Caro
*Caro* Caro is offline
Moderadora
 
Registrado: jul 2004
Ubicación: Cochabamba, Bolivia
Posts: 2.544
Poder: 22
Caro Va por buen camino
Hola de nuevo, ¿que error te da? debes comenzar a eliminar desde el ultimo que has seleccionado, para que no te de error de indices que no existen porque ya se ha eliminado.

El problema que veo en el codigo que he puesto, es esta linea:

Código Delphi [-]
TreeView2.Items.AddChild( nil, TreeView1.Items[i].Text);

se debe cambiar por esta:

Código Delphi [-]
TreeView2.Items.AddChild( nil, TreeView1.Selections[i].Text);

ademas de controlar cuando se quiere borrar un item que tiene subitems.

Saluditos
__________________
Disfruten cada minuto de su vida a lado de sus seres queridos como si fuese el ultimo, uno nunca sabe lo que puede pasar.
Responder Con Cita
  #6  
Antiguo 25-04-2011
annieruci annieruci is offline
Miembro
NULL
 
Registrado: feb 2011
Posts: 32
Poder: 0
annieruci Va por buen camino
Gracias por dedicarme un tiempo pero si cambio esa linea me da este error
y no hace nada no mueve ni uno aunque sea:
List index out of bounds(1).
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
Borrar varios registros en un Dbrepeater David82 PHP 0 09-09-2008 13:40:37
Habilitar elementos de un menu mediante treeview Durbed OOP 2 03-10-2007 13:20:36
Borrar varios registro de una tabla molina669 Conexión con bases de datos 2 10-11-2005 19:58:00
Borrar varios archivos mrmanuel Varios 5 27-05-2004 02:03:54
Borrar items de un TreeView ibarrols OOP 12 06-06-2003 19:50:30


La franja horaria es GMT +2. Ahora son las 09:44:02.


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