2010-01-05 6 views
3

Delphi 애플리케이션을 FPC/Lazarus로 포팅하고 있으며이 애플리케이션은 스플래시 화면에 정보를 표시합니다. 장치가 초기화 섹션이있는 경우 다음이 초기화 섹션은 같은 호출Lazarus 앱의 스플래시 화면에 문제가 있습니다.

Splash.Info(unit_name) 
이 델파이에서 작동

하지만를 내가 시작 화면과 양식을 만들 때 예외를 가지고 다음이 사용 FPC/나사로를 컴파일 할 때 :

Failed to create win32 control, error 1407 : Cannot find window class 

Application.Initialize;이 호출 된 후에 양식을 만들 수 있으므로 제 해결 방법은 ScreenInfo.Initialized=true 일 때 시작 양식을 만드는 것입니다. 작동하지만 모든 정보를 표시하지는 않습니다. Application.Initialize; 앞에 단위 초기화 섹션에서 스플래시 양식을 표시 할 수있는 방법이 있습니까?

답변

0

모두에 최적의 구현을 생성하는 조건을 정의하여 코드를 중복 이 스플래시에 표시하려는 모든 문자열에 대해 호출되는 SplashScreen 초기화 코드에서 다음을 완료했습니다.

... 
{$IFDEF FPC} 
if not ScreenInfo.Initialized then 
    exit; 
{$ENDIF} 
if not splash_inititialized then begin 
    SplashScreen := TSplashScreen.Create(Application); 
    splash_inititialized := true; 
    ... 
1

VCL의 FPC/Lazarus 구현은 Application 객체가 초기화되기 전에 폼 초기화를 허용하지 않을 정도로 Delphi VCL과 충분히 다릅니다.

그래서 당신이 델파이와 FPC/나사로 모두에서 작동하도록 할 수있는 최선은 하나

  • 지연 당신이 델파이 VCL 및 FPC/나사로 VCL 모두가 준비되어 있는지 확인 될 때까지 초기화
  • 델파이 VCL 및 FPC/나사로 VCL

--jeroen

관련 문제