Realmente hay dos campamentos en este caso, y ambos son correctos.
La primera permite que la aplicación administre la vida útil de cada formulario/módulo de datos. En este escenario, si el formulario principal utiliza el módulo de datos, entonces debe crearse antes de poder usarlo. Esto funciona bien para aplicaciones pequeñas, pero hay una sobrecarga de carga cuando se llega a aplicaciones más grandes con múltiples formularios ... sin embargo, una vez que se carga la aplicación, mostrar un formulario es casi instantáneo ya que ya se ha creado en la memoria. Debido a que cada formulario/recurso ya está creado, también hay un gran impacto de memoria al ejecutar la aplicación. Este método es el predeterminado que Delphi "guía" también cuando agrega nuevos formularios/módulos de datos a la aplicación. Si no usa el módulo de datos en OnCreate de la forma principal, puede ser más bajo en el orden de creación ya que no se invocará hasta después de que se inicie Application.Run.
El segundo campo quiere manejar la creación Y destrucción de cada formulario/módulo de datos en sí (generalmente para todas las formas que no sean MainForm). La ventaja de este método es que la aplicación se cargará más rápido y consumirá menos memoria inmediatamente después del inicio. En general, en este escenario, es la forma principal (u otras formas) que gestiona por completo el ciclo de vida de cada formulario/módulo de datos que utilizan. Este método funciona mejor para aplicaciones más grandes con muchas formas.
No hay controlador OnCreate o de lo contrario. MainForm puede hacer referencia a las fuentes de datos declaradas en el módulo de datos, pero afaik se resuelven con éxito sin cambiar el orden de creación. – kludg
Esto no significa que deba editar el origen del proyecto. El orden de creación de los módulos de datos y formularios se puede cambiar en el diálogo de opciones del proyecto. El primer formulario creado será el formulario principal, pero puede haber módulos de datos creados antes de eso. También puede consultar mi respuesta a esta pregunta: http: // stackoverflow.com/questions/382527/delphi-app-initialization-best-practices-approach/383197 # 383197 –
a Uwe Raabe - Sé que hay muchas opciones. Yo mismo a veces compilo un proyecto de prueba de unidad GUI sin ningún tipo de formulario. – kludg