Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   ActionManager Vs. ActionList (https://www.clubdelphi.com/foros/showthread.php?t=86305)

hgiacobone 17-07-2014 14:40:09

ActionManager Vs. ActionList
 
Amigos, les pongo sobre la mesa un tema que es más bien de concepto.

Yo estoy a favor de utilizar ActionList para centralizar las acciones, pero en mi viejo sistema, que ya ha crecido lo bastante como para volverse tedioso, las acciones están a la vieja usanza, esto es, en el evento OnClick de un botón está todo el proceso esperado. Es más, ciertas veces los controles se habilita o deshabilitan mediante código alterando directamente su propiedad Enabled:=False; y cosas así.
Digamos, que está hecho de la forma tradicional simple.

Ahora bien, por distintas ventajas, yo pretendo transportar estas acciones a un control TActionManager o TActionList.

La primera duda es justamente esto: ¿cuál utilizar: un ActionManager o un ActionList ? pues no entiendo bien cual es la diferencia sustancial entre ambos.

La segunda, es que en cada modulo del sistema (cada TForm por así decirlo) hay una serie de acciones que son comunes a varios de ellos como la famosa trilogía "Alta/Baja/Modificación" de datos, la impresión, etc. Pero también hay otras exclusivas de cada módulo como "Control de Balanza"; "Importanción de Padrón"; "Organización de Reparto"; etc.
Entonces, la duda es: ¿conviene mantener un único componente ActionManager en por ejemplo un TDataModule compartido por todos los TForm con todas las acciones posibles o si por el contrario, conviene mantener un ActionList en cada TForm con sus acciones?

La tercera y última, pero seguramente la más importante, es: ¿cómo se hace para que se agreguen/quiten en runtime esos ActionList al TToolBar o TActionMainMenuBar (aquí surge otra duda sobre cual conviene usar) del TForm Principal a medida que se ingresa/sale de cada módulo ?

ecfisa 17-07-2014 15:44:25

Hola hgiacobone.

Sobre tu primera duda, el propósito que cumplen ambos componentes es el mismo. El TActionMananger es un TActionList mas evolucionado y con esteroides. Te permite usar ActionBands, colores, mapas de bits, etc, etc, así como también definir un archivo para guardar y recuperar de forma automática los cambios que realizes, pero su uso está restringido a la VCL.

Revisa este enlace que explica con detalle usos y diferencias: Actions, Action Lists And Action Managers

Sobre las otras consultas, recorda por favor que: Una consulta un mensaje. (Guia de estilo, Preguntas que no hay que hacer).

Saludos y gracias por tu colaboración :)

Neftali [Germán.Estévez] 17-07-2014 16:16:02

Cita:

Empezado por hgiacobone (Mensaje 479095)
La segunda, es que en cada modulo del sistema (cada TForm por así decirlo) hay una serie de acciones que son comunes a varios de ellos como la famosa trilogía "Alta/Baja/Modificación" de datos, la impresión, etc. Pero también hay otras exclusivas de cada módulo como "Control de Balanza"; "Importanción de Padrón"; "Organización de Reparto"; etc.

Eso posiblemente se resolvería utilizando herencia de formularios, aunque tal vez sea un poco tarde para eso...

hgiacobone 18-07-2014 17:13:51

Cita:

Empezado por ecfisa (Mensaje 479096)
Sobre las otras consultas, recorda por favor que: Una consulta un mensaje. (Guia de estilo, Preguntas que no hay que hacer).

Lo siento amigos... ya lo fracciono en 3 partes.

hgiacobone 18-07-2014 17:28:54

Cita:

Empezado por Neftali (Mensaje 479097)
Eso posiblemente se resolvería utilizando herencia de formularios, aunque tal vez sea un poco tarde para eso...

Hola querido Neftali....
Ya algunos TForm los estoy creando o convirtiendo de esa manera, pero sigo en la misma duda.
Supongamos que tengo Form1 como TForm de base en el que existe un TActionList con la trilogía de acciones "Alta/Baja/Modificacion" sin ningun evento OnClick asociado.
Digamos que tienen esta apariencia:
:)-"Hacer ALTA"
:mad:-"Aplicar BAJA"
:cool:-"MODIFICAR"

Ahora, aplicando la herencia de formulario, creamos el Form2 y el Form3. El primero lo usaremos para la Cartera de Clientes y el otro para la Lista de Vehiculos de la Empresa.
Si necesito acciones específicas en un módulo particular, ¿que hago?.... ¿ Adiciono otro TActionList a ese Form puntual ?

Cuando despliego el Form2 y el Form3 en el Formulario Principal (donde reside la TToolBar, que en este caso es una TdxBarManager de DevExpress) supongo que ambos TActionList heredados se acoplan a la barra , pero quedan asi:
:)-"Hacer ALTA"
:mad:-"Aplicar BAJA"
:cool:-"MODIFICAR"
y
:)-"Hacer ALTA"
:mad:-"Aplicar BAJA"
:cool:-"MODIFICAR"

con lo cual el usuario no sabe para que sirve cada acción....
la verdad no entiendo como controlar su uso o yo me estoy haciendo mucho rollo...

hgiacobone 18-07-2014 17:41:18

PARTE 1- ActionManager Vs. ActionList
 
Amigos, les pongo sobre la mesa un tema que es más bien de concepto.

Deseo utilizar TActionManager o TActionList para centralizar las acciones, pero en mi viejo sistema las acciones están de la antigua manera tradicional, esto es, en el evento OnClick de un botón está todo el proceso esperado.
Ahora bien, por distintas ventajas, yo pretendo transportar estas acciones a un control TActionManager o TActionList.

La primera duda es justamente esto: ¿cuál utilizar: un ActionManager o un ActionList ? pues no entiendo bien cual es la diferencia sustancial entre ambos.

egostar 18-07-2014 18:27:17

Cita:

Empezado por hgiacobone (Mensaje 479133)
Amigos, les pongo sobre la mesa un tema que es más bien de concepto.

Deseo utilizar TActionManager o TActionList para centralizar las acciones, pero en mi viejo sistema las acciones están de la antigua manera tradicional, esto es, en el evento OnClick de un botón está todo el proceso esperado.
Ahora bien, por distintas ventajas, yo pretendo transportar estas acciones a un control TActionManager o TActionList.

La primera duda es justamente esto: ¿cuál utilizar: un ActionManager o un ActionList ? pues no entiendo bien cual es la diferencia sustancial entre ambos.

Como ya te comentaron, la funcionalidad es la misma, y el TActionManager es un TActionList mejorado, en 2009 hice un tutorial acerca del uso de TActionManager, ojalá y te ayude a comprender su uso y la "migración" del evento OnClick a los eventos por acciones.

El componente TActionManager

Saludos

hgiacobone 18-07-2014 21:38:16

Cita:

Empezado por egostar (Mensaje 479139)
... en 2009 hice un tutorial acerca del uso de TActionManager ...

Excelente aporte... lo voy a leer. Gracias por tu amable respuesta,


La franja horaria es GMT +2. Ahora son las 23:10:58.

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