我需要在我的FMX程序启动时创建启动画面。
VCL的以下代码不再有效:
SplashScreen := TSplashScreen.Create(Application);
SplashScreen.Show;
Application.Initialize;
SplashScreen.Update; //No such function in FMX
Application.Run;
问题是FMX表单在执行Application.Run
之前不会被创建/重新绘制,因为它们使用一些FMX魔术来重绘。由于我需要OSX支持,因此不能使用VCL启动画面。
如何在Delphi XE2 FireMonkey项目中创建启动画面?
答案 0 :(得分:4)
这样做 - 不同之处在于Application
未成为启动窗口的Owner
,并且在创建和显示启动窗口之前调用Application.Initialize
,但直到启动启动窗口后才会创建主窗体。
program Project2;
uses
FMX.Forms,
System.SysUtils,
Unit1 in 'Unit1.pas' {MainForm},
Unit2 in 'Unit2.pas' {SplashForm};
{$R *.res}
begin
Application.Initialize;
SplashForm := TSplashForm.Create(nil);
SplashForm.Show;
Sleep(1000); // Whatever to control display time of splash screen
Application.CreateForm(TMainForm, MainForm);
SplashForm.Close;
SplashForm.Free;
Application.Run;
end.
答案 1 :(得分:0)
您还可以添加单独的TLayout并根据需要填充它。这样做;
注意:此方法虽然未在初始屏幕上显示标准表单按钮。
我已经做了很多次这样的事情,它证明了比制作一个单独的表格并与主表单一起处理它更安静。