我正在将一个Delphi应用程序移植到FPC / Lazarus,此应用程序在启动画面中显示信息。当单元具有初始化部分时,则此初始化部分调用类似:
Splash.Info(unit_name)
这在Delphi中有效,但是当我使用FPC / Lazarus编译它时,当我使用启动画面创建表单时,我遇到异常:
Failed to create win32 control, error 1407 : Cannot find window class
我发现,可以在调用Application.Initialize;
后创建表单,因此我的解决方法是在ScreenInfo.Initialized=true
时创建表单。它有效,但没有显示所有信息。有没有办法在Application.Initialize;
?
答案 0 :(得分:1)
显然,VCL的FPC / Lazarus实现与Delphi VCL的不同之处在于,在初始化Application对象之前不允许表单初始化。
所以你可以做的最好的方法是让它在Delphi和FPC / Lazarus中运行
- 的Jeroen
答案 1 :(得分:0)
在SplashScreen初始化代码中,为我想要在这个启动画面上显示的每个字符串调用,我完成了:
...
{$IFDEF FPC}
if not ScreenInfo.Initialized then
exit;
{$ENDIF}
if not splash_inititialized then begin
SplashScreen := TSplashScreen.Create(Application);
splash_inititialized := true;
...