Nuestra aplicación solía hacer uso de una base común que todas las formas debían heredar. Me gustaría deshacerme de él por varias razones, que van desde la necesidad de controlar que todo el mundo lo usa hasta varias molestias relacionadas con la implementación de VFI de Delphi. Resulta que la mayor parte de las características que ofrece se puede hacer de otras maneras más confiables.¿Cómo colocar un formulario antes de que se muestre?
De la que no estoy tan seguro, coloca automáticamente todas las formas en el centro de las personas que llaman. Entonces, si abro Dialog A desde mi formulario principal, debería colocarse sobre el centro del formulario principal. Y si luego abro el Diálogo B del Diálogo A, debería colocarse sobre el centro del Diálogo A, y así sucesivamente.
Solíamos ocuparnos de todo esto estableciendo la propiedad Position del formulario base en poOwnerFormCenter y funcionaba muy bien. ¿Pero cómo hago esto en toda la aplicación?
Pensé en usar Screen.OnActiveFormChange, pero creo que esto sucede cada vez que el formulario recibe el foco. También pensé en usar Application.OnModalBegin, pero no parece haber una manera obvia de encontrar el formulario en el momento en que se llama.
¿Alguien ha intentado esto?
+1 Me deshice de la base porque la gente no la usaba y era un fastidio vigilarla. Así que realmente me gustaría criticar su lógica aquí, pero tiene razón. Todavía no puedo encontrar una manera confiable de ocuparme de uno o dos de los requisitos sin una base, así que supongo que tendré que devolverlo. Definitivamente creo que debería omitir la parte visual de la herencia, porque eso simplemente no funciona bien. –
No estoy seguro, pero es posible que Delphi IDE se pueda configurar para que al menos lo ayude a supervisar la clase en la que se basan los formularios nuevos. –