El código de arranque de una aplicación

Cuando comenzamos un nuevo proyecto con Xailer, lo habitual es crear el proyecto y crear el formulario principal de la aplicación. Esto nos crea dos módulos fuente: uno con el mismo nombre del proyecto y otro con el nombre con que hayamos grabado el formulario.


El primero, el que tiene el mismo nombre del proyecto, es el que contiene la función Main(), y es el código de arranque de nuestro programa. Suele tener este aspecto:

/*
 * Proyecto: Ejemplo1
 * Fichero: Ejemplo1.prg
 * Descripción: Módulo de entrada a la aplicación
 * Autor:
 * Fecha: 13/10/2005
 */

#include "Xailer.ch"

//-------------------------------------------------------

Procedure Main()

   Application:cTitle :="Ejemplo1"
   Application:oIcon :="Icono1"
   TForm1():New( Application ):Show()
   Application:Run()

Return

//-------------------------------------------------------

Como podemos ver, el código de esta función consiste en asignar algunas propiedades del objeto Application, crear y mostrar el formulario principal y por último llamar a
Application:Run(), que ejecuta el bucle de mensajes del programa.

Este código lo mantiene directamente el IDE, añadiendo, quitando o cambiando líneas en función de lo que pongamos en la configuración del proyecto. Pero claro, puede ocurrir que en algunas ocasiones no nos interese que se cree y muestre un formulario, sino que querremos escribir nosotros el código que se ha de ejecutar al comienzo
del programa. Y si modificamos directamente esta función, el IDE va a volver a cambiarla, deshaciendo nuestro trabajo.

Y entonces, ¿qué podemos hacer? Pues algo tan sencillo como escribir otra función debajo de Main(), con el código que nosotros queramos. Y cambiar el módulo principal en las propiedades del proyecto, estableciendo que es éste mismo, y no algún formulario (en este ejemplo habría que indicar que el módulo principal es Ejemplo1.prg, y no Form1.prg). A partir de ese momento, Xailer cambiará la línea que crea y muestra el formulario por una simple llamada a nuestra función, con lo que quedaría así:

/*
 * Proyecto: Ejemplo1
 * Fichero: Ejemplo1.prg
 * Descripción: Módulo de entrada a la aplicación
 * Autor:
 * Fecha: 13/10/2005
 */

#include "Xailer.ch"

//-------------------------------------------------------

Procedure Main()

   Application:cTitle :="Ejemplo1"
   Application:oIcon :="Icono1"
   Empezar()
   Application:Run()

Return

//-------------------------------------------------------

Procedure Empezar()
Return

//-------------------------------------------------------

Lógicamente, en esta función podemos poner el código que queramos, incluyendo p.ej. que se muestre una ventana «splash» de entrada al programa, cargar la configuración, pedir un usuario y contraseña, etc.. Y por último mostrar el formulario principal si lo hay.

En el próximo artículo veremos cómo se puede hacer todo esto, y pondremos un ejemplo sencillo.