النموذج الرئيسي الفارغ في تطبيق واجهة المستخدم الرسومية تم تحويله من دلفي إلى لازاروس

StackOverflow https://stackoverflow.com/questions/1795854

سؤال

لقد حولت تطبيقات واجهة المستخدم الرسومية 2 من Delphi إلى Lazarus. يجمع كلا التطبيقات لمنصة Win32 ، I386 ومع واجهة المستخدم الرسومية. تم تحويل الشكل الرئيسي باستخدام أداة Lazarus ويمكن تحريرها من IDE. ولكن عندما أقوم بتشغيل هذا النموذج الرئيسي للتطبيق ، لا يظهر نموذج فارغ فقط دون أي عناصر تحكم.

حاولت تصحيح هذا. يقوم بتشغيل جميع التعليمات البرمجية في أقسام التهيئة ، ويقوم بتشغيل التعليمات البرمجية من مشروع .LPR ، ولكن يحدث خطأ ما في CreateForm () لأنه لا يعمل رمزًا في حدث OnCreate الرئيسي. في سجل الأحداث ، يمكنني رؤية جميع النصوص التي أكتب إليها '<App.Run' تظهر بعد أن أغلق هذا النموذج الفارغ.

الرمز في مشروع .LPR:

  Application.Initialize;
  AddToEventLogInfo('App.CreateForm');
  Application.CreateForm(TfrmTst, frmTst);
  AddToEventLogInfo('App.Run>');
  Application.Run;
  AddToEventLogInfo('<App.Run');

لقد راجعت أنني قادر على إنشاء تطبيقات واجهة المستخدم الرسومية البسيطة من Lazarus ، لكن كلا من تطبيقات واجهة المستخدم الرسومية المحولة لا تعمل كما هو متوقع. ما يمكن ان يكون خطأ؟ هل فاتني شيء؟ ربما واحدة من العديد من التحذيرات وتلميحات لازاروس كتابة مهمة؟

عندما أقوم بتشغيل تطبيقي ، يكتب Lazarus هذا:

  windres: warning: 14: "MAINICON": 1045: duplicate value
  windres: warning: 16: 1: 1045: duplicate value
  Project "Tst_fpc" successfully built. :)

تعديل:

تم تحويل أداة تحويل Lazarus .DFM -> .LFM ، ولكن لديها بعض المشاكل مع ملف .PAS. اضطررت إلى ذلك يدويًا:

  1. أضف وحدات لازاروس للاستخدامات:

    يستخدم {$ ifdef fpc} lclintf ، lresources ، {$ endif}

  2. نموذج Delphi المشروط {$ r *.dfm}:

    {$ ifndef fpc} {$ r *.dfm} {$ endif}

  3. إضافة .LRS مورد في رمز التهيئة:

    التهيئة {$ ifdef fpc} {$ i myunit.lrs} {$ endif}

هل كانت مفيدة؟

المحلول

أظن أن الوحدة الرئيسية (أفترض أنها تسمى UTEST) لا تحتوي على {$ i utest.lrs} في قسم التهيئة. .lrs هو ملف Roashs Lazarus ، الذي تم إنشاؤه من LFM (DFM) في Delphi.

نصائح أخرى

النموذج الفارغ هو شكل المشروع الحالي أثناء استخدامك لمشروع تحويل Delphi من الأدوات مما يعني أن المشروع الحالي نشط.
جرب هذا:

  • على خيار المشروع أغلق المشروع الحالي.
  • على النافذة الرئيسية الصغيرة المسماة كمعالج للمشروع ، استخدم خيار Convert Delphi Project.

أنا آسف لا أستطيع أن أعطيك إجابة مباشرة. من ما أفهمه ، هناك مشكلة في ملف المورد. في دلفي هذا هو *.res ، لا أعرف كيف تبدو في لازاروس. استخدم برنامجًا مثل ريسيت ، http://www.resedit.net/, ، لفتح ملف المورد. جربته ووجدت أيقونة "مجلد" حيث كان هناك منشور رئيسي. أظن أن لديك اثنان. في هذه الحالة ، قم بإزالة أحدهم.

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