나사로 앱의 스플래시 스크린 문제
-
18-09-2019 - |
문제
Delphi 응용 프로그램을 FPC/Lazarus로 포팅하고 있으며이 응용 프로그램은 Splash 화면에 정보를 보여줍니다. 단위는 초기화 섹션이 있으면이 초기화 섹션은 다음과 같은 것을 호출합니다.
Splash.Info(unit_name)
이것은 Delphi에서 작동하지만 FPC/Lazarus를 사용하여 이것을 컴파일했을 때 Splash 화면으로 양식을 만들 때 예외를 얻었습니다.
Failed to create win32 control, error 1407 : Cannot find window class
나는 그 형태가 후에 만들 수 있음을 발견했다 Application.Initialize;
내 해결 방법은 스플래시 양식을 작성하는 것입니다. ScreenInfo.Initialized=true
. 작동하지만 모든 정보를 표시하는 것은 아닙니다. 이전에 단위 초기화 섹션에서 스플래시 양식을 표시하는 방법이 있습니까? Application.Initialize;
?
해결책 2
이 스플래시에서 보여주고 싶은 모든 문자열에 대해 호출되는 SplashScreen 초기화 코드에서 다음과 같이 완성했습니다.
...
{$IFDEF FPC}
if not ScreenInfo.Initialized then
exit;
{$ENDIF}
if not splash_inititialized then begin
SplashScreen := TSplashScreen.Create(Application);
splash_inititialized := true;
...
다른 팁
VCL의 FPC/Lazarus 구현은 응용 프로그램 객체가 초기화되기 전에 양식 초기화를 허용하지 않도록 Delphi VCL과 충분히 다릅니다.
그래서 델파이와 FPC/Lazarus에서 작동하도록하기 위해 최선을 다하는 최선은
- Delphi VCL과 FPC/Lazarus VCL이 모두 준비되어있을 때까지 초기화를 지연시킵니다.
- Delphi VCL 및 FPC/Lazarus VCL 모두에 대한 최적의 구현을 생성하기 위해 조건부 정의로 코드를 복제하십시오.
-jeroen
제휴하지 않습니다 StackOverflow