سؤال

أقوم بتنفيذ تطبيق 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

-

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top