Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   CTRL-P en varios formularios (https://www.clubdelphi.com/foros/showthread.php?t=15334)

magm2000 19-10-2004 16:51:22

CTRL-P en varios formularios
 
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

Cita:

Empezado por magm2000
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

Cita:

Empezado por magm2000
...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:
Código Delphi [-]
TForm1 = class(TForm)

por ésta otra:
Código Delphi [-]
TForm1 = class(TMiForm)


La franja horaria es GMT +2. Ahora son las 04:25:50.

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