En el ejemplo se da por supuesto que ya tienes una aplicación creada y vas a añadirle la Splash Screen. El form principal se llama Form1. Asegúrate de darle a File-Save y guarda todo el proyecto (Project1 por defecto) y formularios.1. Ve al menu File y elige New Form.
2. Renombra el form. Para el ejemplo lo llamaremos Splash.
3. Graba el proyecto. Cuando te pregunte guardar la Unit2.cpp renombrala a SplashSource.cpp
Creación de la Splash Screen:
4. En el inspector de objetos elige +BorderIcons. Haz doble clic en la columna de la izquierda. Veras 4 opciones, ponlas todas a False (BorderIcons []). Cambia
- BorderStyle = bsNone
- FormStyle = fsStayOnTop
- Position = poScreenCenter
5. Pon un panel en el form (Panel1). Pon las propiedades del panel como sigue:
- Align = alClient
- BevelInner = bvLowered
- BevelOuter = bvLowered
- BevelWidth = 2
6. Pon un TImage dentro del panel (TImage1). Establece las propiedades siguientes:
- Align = alClient
- Stretch = true
- Carga un BMP (haciendo doble clic en el TImage del form)
7. Ve al editor de codigo y haz doble clic sobre el evento OnShow del Form Principal (Form1 o como lo hayas renombrado). Deja el evento como sigue:
code:
void __fastcall TForm1::FormShow(TObject *Sender)
{
if (Splash)
{
delete Splash;
Splash = NULL;
}
}
8. Haz clic en el menu View y elige Project Manager. Abre el fuente del proyecto. Aquí se muestra como ha de quedar el código:
code:
#include <vcl.h>
#pragma hdrstop
#include "SplashSource.h"
USERES("Project1.res");
USEFORM("Unit1.cpp", Form1);
USEFORM("SplashSource.cpp", Splash);
//---------------------------------------------------------------------------
WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int)
{
try
{
Application->Initialize();
Splash = new TSplash (static_cast<void *>(NULL)); // Añade esta línea
Splash->Show(); // Añade esta línea
Application->ProcessMessages(); // Añade esta línea
Application->CreateForm(__classid(TForm1), &Form1);
// Application->CreateForm(__classid(TSplash), &Splash); Comenta esta linea!
Application->Run();
}
catch (Exception &exception)
{
Application->ShowException(&exception);
}
return 0;
}
9. Añade la cabecera "SplashSource.h" tanto al Project1.cpp (archivo de proyecto) como al Unit1.cpp (form principal).
#include "SplashSource.h"
10. Si el Splash es demasiado rápido porque tu aplicación tarda poco en cargar añádele un timer. Haz doble clic en el evento OnCreate del form principal y escribe:
code:
void __fastcall TForm1::FormCreate(TObject *Sender)
{
if (Splash)
{
Sleep(2000);
}
}