PDA

Ver la Versión Completa : CTRL-P en varios formularios


magm2000
19-10-2004, 16:51:22
Hola tengo una aplicación fsMDIform con varios formularios. Quisiera saber si es posible implementar lo siguiente:
Al estar un formulario abierto (que no sea el principal) quiero que se ejecute la acción asociada a un botón que tengo en ese formulario. Es decir tengo un icono que representa una impresora, cuando pincho en él me imprime algo. Quiero que además de poder hacerlo con el ratón lo pueda hacer mediante CTRL-P. Como el icono de imprimir lo tengo en todos los formularios (menos el principal) quiero que dicha acción se ejecute sobre el formulario activo.
Una solución que tengo es colocar un ActionList en cada formulario pero el problema es que tengo muchos formularios, es un poco rollo tener que modificar todos los formularios si lo puedo hacer mediante una función que me sirva para todos los formularios.
Un saludo.

roman
19-10-2004, 17:06:20
Una solución que tengo es colocar un ActionList en cada formulario pero el problema es que tengo muchos formularios, es un poco rollo tener que modificar todos los formularios si lo puedo hacer mediante una función que me sirva para todos los formularios.


No tienes que colocar un ActionList en cada formulario, simplemente coloca uno en el principal y en el evento OnExecute de la acción correspondiente usas la propiedad ActiveMDIChild del formulario principal para saber cuál es el formulario hijo activo.

// Saludos

Neftali [Germán.Estévez]
20-10-2004, 09:38:09
...Una solución que tengo es colocar un ActionList en cada formulario pero el problema es que tengo muchos formularios, es un poco rollo tener que modificar todos los formularios si lo puedo hacer mediante una función que me sirva para todos los formularios...
Creo que la solución la puedes encontrar en la herencia.
Crea un nuevo formulario (llamemosle TMiForm) donde debes colocar tu componente ActionList y el resto de componentes/comportamientos comunes a todos tus formularios. A partir de ahí se trata de hacer que tus formularios deriven de TMiForm en lugar de TForm, de esta forma ésta característica y todas las que implementes estarán en todos tus formularios.


Luego cambias ésta definiciónb de tus forms:

TForm1 = class(TForm)


por ésta otra:

TForm1 = class(TMiForm)