Можно конечно, делал, правда в XE8. Объясню на примере своего приложения:
В проекте 2 формы: frmSplash и frmMain. frmSplash в свойствах проекта ставим как Main form. Там же, обоим формам устанавливаем Avto create.
frmSplash содержит картинку и прогресс бар, отображающий ход загрузки frmMain.
В самой frmSplash никакого особого кода не пишем.
Для frmMain ставим свойство Visible в False в ObjectInspector.
В frmMain в процедуре FormCreate пишем:
код....
frmSplash.pbLoad.Value:=15;Application.ProcessMessages; //Меняем значение индикатора в форме заставки
код...
frmSplash.pbLoad.Value:=20; Application.ProcessMessages; //Меняем значение индикатора в форме заставки
код...
frmSplash.pbLoad.Value:=100;Application.ProcessMessages; //Загрузка закончилась
frmMain.Visible:=True;
Самое главное, чтоб frmSplash не была перегружена контролами и появилась практически сразу, после исчезновения стандартной загрузочной картинки.
Если же, ваша главная форма грузится ну очень долго и экран блокируется (гаснет) раньше, чем исчезнет заставка - то нужно отключить блокировку экрана в файле проекта, например:
program VisAcu;
uses
System.StartUpCopy,
FMX.Forms,
{$IF DEFINED(ANDROID)}
Androidapi.Helpers,
FMX.MobilePreview,
Androidapi.JNI.GraphicsContentViewText,
{$ENDIF }
untAstro in 'untAstro.pas',
untSplash in 'untSplash.pas', {frmSplash}
untMain in 'untMain.pas'; {frmMain}
{$R *.res}
begin
Application.Initialize;
//Управление подсветкой
{$IF DEFINED(ANDROID)}
SharedActivity.getWindow.addFlags(TJWindowManager_LayoutParams.JavaClass.FLAG_KEEP_SCREEN_ON);
{$ENDIF}
Application.CreateForm(TfrmSplash, frmSplash);
Application.CreateForm(TfrmMain, frmMain);
Application.Run;
end.
В итоге: появляется картинка стандартной заставки, потом Ваш сплэш-скрин, в котором неторопливо ползет прогресс бар загрузки основной формы...