Hola. Gracias por la respuesta.
Efectivamente el polimorfismo debería actuar aquí al redefinir el método Puedo_Cerrar con override. Lo que no tenía claro es que al hacer el "with MDIChildren[i] as TMDIBase1 do" tomase el Puedo_Cerrar de la nueva clase y no de la TMDIBase1, ya que al decirle que trate al MDIChildren[i] como un formulario TMDIBase1 no llamase al método Puedo_Cerrar redefinido.
Lo que no veo tan claro es lo que me comentas del método OnCloseQuery. Efectivamente si trato de cerrar un formulario me saltaría ese evento y ahí podría hacer ese proceso para que no se cerrara, pero no me solventaría lo que pretendo hacer. Yo quiero saber si puedo o no cerrar el formulario. Tal como tu comentas tendría que hacer un close del formulario, y el se gestionaría, pero desde donde hago el close tendría que hacer más adelante una comprobación de si se cerró o no, por lo que al final tendría que consultar de alguna manera eso. Por ello, lo encapsule en el método Puedo_Cerrar.
Por otra parte, efectivamente, pensé en hacer una clase ancestro inicial con el método puedo_cerrar y después las dos "bases" mdi sobre estas, pero para un solo método no me merecía la pena hacer una clase. Las dos "MDI base" son totalmente diferentes.
Un saludo.
|