Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Cargar TActionManager desde TreeView (https://www.clubdelphi.com/foros/showthread.php?t=66602)

Neeruu 03-03-2010 03:17:46

Cargar TActionManager desde TreeView
 
1 Archivos Adjunto(s)
Hola a todos... como están???

Escribo para ver si me pueden ayudar con un código que me tiene rompiendo la cabeza hace un par de días...

Explico la idea y pongo el ejemplo para que puedan verlos ustedes mismo...

La Idea:

Tengo un TActionManager con sus respectivas action en una TActionMainMenuBar.

Bueno ahora mi idea es generar con eso un treeview donde el usuario pueda ver marcar que action ver....

Hasta acá perfecto.... con ayuda de neftali, extraje un ejemplo de su pagina web y con una pequeñas modificaciones pude reemplazar el TMenu por el TActionManager... Logre generar el treeview...

Ahora tengo que hacer básicamente lo mismo... pero en ves de crear el treeview tengo que leer cual esta activo y cual no.... para poder actualizar el menú... y acá es cuando me enredo y no se como seguir...

Adjunto el ejemplo haber si me pueden dar una mano...

Aclaración: la idea es trabajarlo con un checktreeview pero pongo el treeview nomas para que todos puedan ver el ejemplo sin necesidad de tener instaladas las jvcl


Saluda Atte Nerru!!!:)

PD:\ Ultimamente se esta cayendo el servidor de ClubDelphi??? desde argentina y durante el dia no se puede entrar....

Neftali [Germán.Estévez] 03-03-2010 09:04:41

El problema lo tienes en el procedimiento ActivarMenu.

Hay un momento en que haces eta comprobación:
Código Delphi [-]
        if Nodo = nil then
          nod := TreeView1.Items[i];

Y cuando nodo vale nil, sigues adelante y un poco más abajo haces:

Código Delphi [-]
if Nodo.Parent <> nil then

Ese acceso a nodo.Parent da AccessViotation ya que nodo=nil.

Neftali [Germán.Estévez] 03-03-2010 09:06:33

¿Con ese procedimiento exactamente, qué quieres hacer?

Si lo que deseas el recorrer el TreeView, ver cuales están activos y actualizar las TAction, no entiendo porqué necesitas pasar un Nodo. :confused:

Neeruu 03-03-2010 19:17:20

Cargar TActionManager desde TreeView
 
1 Archivos Adjunto(s)
Hola Neftali gracias por contestas....

Realice unas mejoras al código.

Podrías mirar el código por favor.

No puedo hacer que se mueva entre los nodos de Padres (por llamarlos de alguna manera)

En respuesta tu pregunta:
Lo que quiero hacer es recorrer de nuevo el Menu... Por cada action, buscar el correspondiente en el teeview, y poner el valor a la propiedad visible de la action dependiendo del valor del check de ese nodo (porque después tengo que poner un checkTreeView)...


Te agradecería si puedes decirme donde estoy fallando...


Saluda Atte Neeruu!!!:)

Neftali [Germán.Estévez] 04-03-2010 17:29:21

1 Archivos Adjunto(s)
Échale un vistazo al proyecto que te paso.
Creo que es lo que necesitas. He simulado los Check en los elementos (con una [X] en el Texto), así que ahora puedes marcar/desmarcar los elementos del TreeView pulsando Doble Click sobre ellos.

A partir de que maques o desmarques, vuelve a pulsar el botón de Activar AM, para volver a regenerar el menú. Los marcados aparecen los demás quedan invisibles.

Neeruu 04-03-2010 17:47:58

Cargar TActionManager desde TreeView
 
Muchas Gracias Neftali...


Te agradesco mucho. ahora veo donde estaba mi error....

Gracias... de nuevo....

Estoy re contento..... jejejeje....:):):)


Saluda Atte Neeruu!!!:)


La franja horaria es GMT +2. Ahora son las 10:16:03.

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