مشكلة مع شاشة البداية في تطبيق Lazarus
-
18-09-2019 - |
سؤال
أقوم بتنفيذ تطبيق Delphi إلى FPC / Lazarus وتظهر هذا التطبيق المعلومات في شاشة البداية. عندما تحتوي الوحدة على قسم التهيئة ثم يسميه قسم التهيئة هذا شيء مثل:
Splash.Info(unit_name)
هذا يعمل في دلفي، ولكن عندما جمعت هذا باستخدام FPC / Lazarus ثم حصلت على استثناء عند إنشاء نموذج مع شاشة البداية:
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;
...
نصائح أخرى
يبدو أن تطبيق FPC / LAZARUS ل VCL يختلف ما يكفي من Delphi VCL لعدم السماح بتهيئة التهيئة قبل تهيئة كائن التطبيق.
لذلك أفضل ما يمكنك القيام به لجعله يعمل في كل من دلفي و FPC / لازاروس إما
- تأخير التهيئة حتى تكون متأكدا من أن كل من Delphi VCL و FPC / Lazarus VCL جاهز له
- تكرار الكود الخاص بك مع تعريفات مشروطة لتحديد التطبيقات المثلى لكل من دلفي VCL و FPC / Lazarus VCL
-