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 17-05-2010
Chewitta Chewitta is offline
Miembro
 
Registrado: jul 2008
Posts: 13
Poder: 0
Chewitta Va por buen camino
Unhappy Ayuda con Treeview

Hola

estoy manejando un Treeview y estoy lo que necesito es check si chekeo el padre se debe de poner lo mismo tanto en los hijos como los nietos , estoy actualmente usando este codigo, pero solo lo hace con los hijos como lo acomodod para que queden tambien los nietos
Código Delphi [-]
procedure TFrmSeguridad.TreeView1MouseDown(Sender: TObject;
  Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
var node_sel,f:TTreeNode;
    p:tpoint;
    b:boolean;
begin
 getcursorpos(p);
 if (TreeView1.GetNodeAt(X, Y) <> nil) then
  begin
   node_sel:=TreeView1.GetNodeAt(x,y);
   b:=TreeView1.GetChecked(node_sel);
   f:=node_sel.getFirstChild;
     while (f<>nil) do
      begin
       TreeView1.SetChecked(f,b);
       f:=f.GetNextChild(f);
      end;
    end;
end;
de antemano gracias... por su ayuda
Responder Con Cita
  #2  
Antiguo 17-05-2010
Avatar de delphi.com.ar
delphi.com.ar delphi.com.ar is offline
Federico Firenze
 
Registrado: may 2003
Ubicación: Buenos Aires, Argentina *
Posts: 5.935
Poder: 27
delphi.com.ar Va por buen camino
¿Existen los métodos GetChecked y SetChequed en el TTreeView?....
¿No puedes utilizar la propiedad Selected para evitar buscar el Item por posición?...

Lo que haría sería lo siguiente: crearía un método recursivo tipo SetChecked(ANode: TTreeNode; AValue: Boolean; ALevel: Integer; AMaxLever: Integer) donde cada vez que se llame se incremente el valor ALevel y solo se vuelva a llamar si el valor ALevel es menor que AMaxLevel!

Saludos!
__________________
delphi.com.ar

Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla.
Responder Con Cita
  #3  
Antiguo 17-05-2010
[maeyanes] maeyanes is offline
Capo de los Capos
 
Registrado: may 2003
Ubicación: Campeche, México
Posts: 2.732
Poder: 24
maeyanes Va por buen camino
Hola...

Tienes que hacer que el método sea recursivo. Algo como:

Código Delphi [-]
procedure TFrmSeguridad.TreeView1MouseDown(Sender: TObject;
  Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
  Node := TreeView1.GetNodeAt(X, Y);
  if Assigned(Node) then
    CheckNodes(Node)
end;

procedure TFrmSecuridad.CheckNodes(Node: TTreeNode);
var 
  F: TTreeNode;
  p: TPoint;
  b: Boolean;

begin
  b := TreeView1.GetChecked(Node);
  for I := 0 to Pred(Node.Count) do
  begin
    TreeView1.SetChecked(Node[i], b);
    if Node[i].HasChildren then
      CheckNodes(Node[i])
  end
end;

Este código lo hice de memoria y no lo he probado, pero te puede dar una idea de cómo lo debes hacer.


Saludos...
Responder Con Cita
  #4  
Antiguo 18-05-2010
Chewitta Chewitta is offline
Miembro
 
Registrado: jul 2008
Posts: 13
Poder: 0
Chewitta Va por buen camino
Ayuda TreeView

Muchas gracias Maeyanes... ya lo probe como lo pusiste y va bien... quedo de lujo.
Responder Con Cita
  #5  
Antiguo 18-05-2010
Avatar de delphi.com.ar
delphi.com.ar delphi.com.ar is offline
Federico Firenze
 
Registrado: may 2003
Ubicación: Buenos Aires, Argentina *
Posts: 5.935
Poder: 27
delphi.com.ar Va por buen camino
Si lo de maeyanes es correcto, entonces te interpreté mal. Las instrucciones que te dí eran para que no supere mas de dos niveles en la jerarquía... (Hijos y nietos, pero no biznietos y tataranietos).

Saludos!
__________________
delphi.com.ar

Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla.
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
Ayuda con TreeView xmalmorthen Varios 5 10-02-2009 16:18:31
Ayuda con TreeView BuenaOnda Varios 7 02-05-2007 20:57:44
Ayuda con TreeView Maury Manosalva OOP 3 09-08-2006 19:07:23
Ayuda con treeView rruffino Varios 1 05-01-2005 16:30:56
Ayuda con un TreeView CaBaL OOP 2 03-11-2004 16:38:19


La franja horaria es GMT +2. Ahora son las 03:59:18.


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