Te doy otro pero no es nada profesional... lo que hace es simular la carga de un sistema, pero solo eso "simula". El tema es que uso un componente llamado RzMeter que es de Raize (se puede bajar un trial de http://www.raize.com/DevTools/RzComps/DemoTrial.asp). La propiedad Max tiene que estar en 100, para que despues puedas dividir esa cantidad por 4 y entonces hacer que la barra se mueva cada 25 hasta llegar a 100; eso lo manejas como vos quieras puede ser cada 20 o cada 10... Tenes el form Splash en mi ejemplo "FrmSplash" que el mismo yendo a Project ->options->Forms debe estar del lado de "Aviable Forms" y en "Auto-create Forms" todos los otros que vas a usar en tu aplicacion. Luego vas a Project->view source (para ver el codigo principal de tu proyecto) y le agregas este codigo (en el uses le agregas "Windows" por ejemplo: "
uses
Forms,
windows,............").
Application.Initialize;
FrmSplash := TFrmSplash.Create(application);
FrmSplash.Show;
FrmSplash.Update;
application.Initialize;
application.Title := 'Mi proyecto'; //esto esta por defecto en tu codigo
sleep(500); //lo que hace el sleep es parar la aplicacion 1/2 segundo
frmsplash.RzMeter1.value := 25; //aca le digo que avance 25
sleep(500); //para 1/2 segundo
FrmSplash.RzLabel2.Caption := 'Cargando Archivos...';
FrmSplash.rzmeter1.value := 50; //aca avanza a 50
sleep(500);
FrmSplash.RzLabel2.Caption := 'Abriendo Bases...';
FrmSplash.rzmeter1.value := 75; //avanza a 75
sleep(500);
FrmSplash.RzLabel2.Caption := 'Iniciando...';
FrmSplash.rzmeter1.value := 100; //y completa todo a 100
Sleep(250);
FrmSplash.RzLabel2.Caption := 'Listo...';
sleep(500);
//Apartir de aqui cargá todos los demas Forms...
//Fijate que el primer form que se crea es de Login como el de tu aplicacion para validar a usuarios
Application.CreateForm(TFrmLogin, FrmLogin);
Application.CreateForm(TFrmPcipal, FrmPcipal);
Application.CreateForm(TFrmBusqCli, FrmBusqCli);
Application.CreateForm(TDtmCliente, DtmCliente);
Application.CreateForm(TDtmAltaCli, DtmAltaCli);
Application.CreateForm(TFrmTicket, FrmTicket);
Application.CreateForm(TFrmNvoCli, FrmNvoCli);
Application.CreateForm(TFrmModiCli, FrmModiCli);
Application.CreateForm(TFrmAgenda, FrmAgenda);
Application.CreateForm(TDtmAgenda, DtmAgenda);
Application.CreateForm(TDtmListCli, DtmListCli);
Application.CreateForm(TFrmAcerca, FrmAcerca);
Application.CreateForm(TDtmHora, DtmHora);
Application.CreateForm(TDtmListAgen, DtmListAgen);
Application.CreateForm(TDtmTotales, DtmTotales);
Application.CreateForm(TDtmListCli2, DtmListCli2);
Application.CreateForm(TFrmAgenEntre, FrmAgenEntre);
Application.CreateForm(TDtmAgenEntre, DtmAgenEntre);
Application.CreateForm(TDtmRepAgenEntre, DtmRepAgenEntre);
Application.CreateForm(TDtmLogin, DtmLogin);
FrmSplash.Hide; //Apartir de aqui liberas el splash...
FrmSplash.Free;
Application.Run;
end.
Por ultimo supongo que con otro componente que no sea el Raize podes hacer lo mismo... el tema es que avance a medida que se va iniciando la aplicacion...
Espero que te sirva y haber sido claro cualquier duda me escribis...