我使用this文章创建了一个简单的启动画面。一切正常,但在我的Splash Screen被释放后,我的任务栏中仍然有一个额外的图标 - 因此,对于一个应用程序,我有两个图标。
我的项目文件中的代码如下
Application.Initialize;
SplashScreen := TSplashScreen.Create(nil);
SplashScreen.Show;
SplashScreen.Update;
Application.Title := 'Frame';
Application.CreateForm(TMainform, Mainform);
Application.Create;
SplashScreen.Hide;
SplashScreen.Free;
Application.Run;
答案 0 :(得分:1)
虚假的Application.Create
是问题,这完全合情合理。去掉它。 Hide
也毫无意义。也许这就是你所需要的:
Application.Initialize;
SplashScreen := TSplashScreen.Create(nil);
SplashScreen.Show;
SplashScreen.Update;
Application.Title := 'Frame';
Application.CreateForm(TMainform, Mainform);
SplashScreen.Free;
Application.Run;
您可能还希望在调用Application.MainformOnTaskbar := True;
后考虑添加Initialize
。
答案 1 :(得分:0)
我通常以这种方式制作闪屏: 在OnCreate活动(在您的主表单上):
F_Splash := TF_Splash.Create(Self);
F_Splash.ShowModal;
在启动画面窗体中,删除TTimer组件并设置间隔(例如500毫秒)。在其OnTimer活动上:
Self.Close;
我相信这种方法比你提到的例子更有用。
答案 2 :(得分:0)
Application.Initialize;
SplashScreen := TSplashScreen.Create(nil);
Application.MainFormOnTaskbar := True;
SplashScreen.Show;
SplashScreen.Update;
Application.Title := 'Frame';
Application.CreateForm(TMainForm, MainForm);
SplashScreen.Free;
Application.Run;
我还确保SplashScreen没有在代码中列为表单,但我确实在Uses子句中包含了SplashUnit。
这已经正常工作了几年。