Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 23-04-2008
_CALI _CALI is offline
Miembro
 
Registrado: mar 2008
Posts: 99
Poder: 17
_CALI Va por buen camino
sincronizar TreeView con MainMenu

Hola Amigos, imaginen que quieran personalizar el menu de un sistema atraves de un TreeView, osea q cada nodo que agregue o q cambie de lugar afecta a la estructura del MainMenu tal y como esta en el TreeView, ojo no importa si tiene hijos, nietos tataranietos, etc, tal descendecia debe tambien crearse el en el MENU

un programa q sea dinámico sin importar el numero de niveles de la jerarquia de ambos objetos, lo he eintentado con bucles anidados for dentro de otro, etc, pero si quiero agragar una desendencia mas de lo esta limitado mi bucle anidado???


Muchas Gracias!!!!
Responder Con Cita
  #2  
Antiguo 23-04-2008
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.293
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
En la sección de ejempos de mi página web tienes un par llamados: "Convertir un Menu en un TreeView" (para pasar de Treeview a Menu -Al contrario que el que necesitas-) y "Crear un menu de aplicación a partir de texto" (que genera al Menu a partir de un Texto, pero con estructura de árbol -similar a un Tree-).

Ambos están con código, y aunque no es exactamente lo que necesitas, creo que si les echas un vistazo no te costará mucho sacar lo que necesitas.
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #3  
Antiguo 24-02-2010
Avatar de defcon1_es
defcon1_es defcon1_es is offline
Miembro
 
Registrado: mar 2004
Ubicación: Cuenca - España
Posts: 533
Poder: 21
defcon1_es Va por buen camino
Cita:
Empezado por Neftali Ver Mensaje
En la sección de ejempos de mi página web tienes un par llamados: "Convertir un Menu en un TreeView" (para pasar de Treeview a Menu -Al contrario que el que necesitas-) y "Crear un menu de aplicación a partir de texto" (que genera al Menu a partir de un Texto, pero con estructura de árbol -similar a un Tree-).

Ambos están con código, y aunque no es exactamente lo que necesitas, creo que si les echas un vistazo no te costará mucho sacar lo que necesitas.
Aunque este post es un poco "viejuno", me ha surgido recientemente este mismo problema,
y siguiendo estos dos ejemplos, he podido cargar un Mainmenu a partir de un Treeview mediante este código (muy básico)

Código Delphi [-]
Poner en el uses la unit Contnrs

procedure TForm1.CargarMenuDeArbol(aMenu: TMenu; Arbol: TTreeView);
var
  itemStack: TStack; 
  level: Integer;
  i: Integer;
  newitem: TMenuItem;
begin
  level := 0;
  itemstack := TStack.Create;
  try
    itemstack.Push(aMenu.Items);
    for i := 0 to Arbol.Items.count - 1 do
    begin
      // crear el elemento
      newitem :=
        Menus.NewItem(Arbol.Items.Item[i].Text, 0, false, true, nil, 0, 'mni'+IntToStr(i));
//      newitem.Hint := Arbol.Items.Item[i].Text; 
      newitem.ImageIndex := Arbol.Items.Item[i].ImageIndex;
      while level > Arbol.Items.Item[i].level do
      begin
        itemstack.Pop;
        Dec(level);
      end;
      // Añadirlo
      TMenuItem(itemstack.Peek).Add(newitem);
      Itemstack.Push(newitem);
      Inc(level);
    end;
  finally
    itemstack.free;
  end;
end;
__________________
Progress Openedge
https://abevoelker.com/progress_open...dered_harmful/


Delphi forever...
Responder Con Cita
  #4  
Antiguo 24-02-2010
Avatar de rgstuamigo
rgstuamigo rgstuamigo is offline
Miembro
 
Registrado: jul 2008
Ubicación: Santa Cruz de la Sierra-Bolivia
Posts: 1.646
Poder: 17
rgstuamigo Va por buen camino
Arrow

Yo lo hago recursivamente con éste código>
Código Delphi [-]
Procedure pMainMenuToTreeView(Nodos:TTreeNodes;Padre:TTreeNode;I:TMenuItem);
var j:Integer;
aux:TMenuItem;
n:TTreeNode;
Caption:String;
begin
 if ((I.Enabled=False)or(I.IsLine)) then Exit;
for  j:=0  to I.Count-1 do
  begin
    aux:=I.Items[j];
      if not(aux.IsLine)then
       begin
           if(aux.Enabled=True) then
            begin
             Caption:=StringReplace(aux.Caption,'&','',[]);//con esto elimino los '&'
             n:=Nodos.AddChild(Padre,Caption);
            end;
          pMainMenuToTreeView(Nodos,n,aux);
           if(not(aux.IsLine)and(aux.Count>0)) then
              n.ImageIndex:=1
           else n.ImageIndex:=2;
          n.SelectedIndex:=n.ImageIndex;
      end;
  end;
end;
Por supuesto que si analizan el código anterior se darán cuenta que tambien asigno los indices de las imagenes que tendra el treeView en sus nodos.En mi caso particular lo preciso así como está en el Código; aparte de eso yo no cargo los item que estén deshabilitados, ni tampoco los item que son separadores(item que son una linea de separacion).
Para llamarlo se hace así>
Código Delphi [-]
begin
 Arbol.Items.Clear;
 pMainMenuToTreeView(Arbol.Items,nil,Menu.Items);
end
Saludos...
POSDATA:Ultimamente estoy dando a conocer algunos códigos personales(secreto) que tenía por ahí guardados.
__________________
"Pedid, y se os dará; buscad, y hallaréis; llamad, y se os abrirá." Mt.7:7

Última edición por rgstuamigo fecha: 24-02-2010 a las 17:47:12.
Responder Con Cita
  #5  
Antiguo 11-03-2010
darkone2k4 darkone2k4 is offline
Miembro
 
Registrado: abr 2008
Posts: 89
Poder: 17
darkone2k4 Va por buen camino
muchas gracias x tú código rgstuamigo, era lo que necesitaba..
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
Copiar un treeview a otro treeview mierda OOP 0 26-07-2006 12:29:17
Items de MainMenu a TreeView MITOPE Varios 3 08-09-2004 18:15:00
Como utilizar el Treeview, desplegar la info del arbol binario al treeview leo21 Varios 2 08-04-2004 22:47:30
Como utilizar el Treeview, desplegar la info del arbol binario al treeview leo21 OOP 1 08-04-2004 22:42:44
Copiar los Items de un MainMenu en un TreeView Nuria OOP 1 22-07-2003 15:22:49


La franja horaria es GMT +2. Ahora son las 19:00: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