Я конвертировал свои 2 приложения GUI из Delphi в Lazarus. Оба приложения собираются для платформы Win32, i386 и с графическим интерфейсом. Основная форма была преобразована с использованием инструмента Lazarus и может быть отредактирована из IDE. Но когда я запускаю такое приложение, основная форма не появляется, только пустая форма без каких-либо элементов управления.Пустая основная форма в графическом приложении конвертирована из Delphi в Lazarus
Я попытался отладить это. Он запускает весь код в разделах инициализации, и запускает код из проекта .lpr, но что-то не так происходит в CreateForm(), потому что не запускает код в основной форме OnCreate. В журнале событий я вижу все тексты, которые я пишу с ним '<App.Run'
, появляющиеся после закрытия этой пустой формы.
Код в .lpr проекта:
Application.Initialize;
AddToEventLogInfo('App.CreateForm');
Application.CreateForm(TfrmTst, frmTst);
AddToEventLogInfo('App.Run>');
Application.Run;
AddToEventLogInfo('<App.Run');
Я проверил, что я могу создавать простые приложения с графическим интерфейсом от Лазаря, но и преобразован GUI приложение не работает должным образом. Что может быть неправильным? Я что-то пропустил? Может быть, одно из многих предупреждений и намеков, что письмо Лазаруса важно?
Когда я запускаю мое приложение Lazarus пишет об этом:
windres: warning: 14: "MAINICON": 1045: duplicate value
windres: warning: 16: 1: 1045: duplicate value
Project "Tst_fpc" successfully built. :)
EDIT:
Lazarus инструмент преобразования конвертируется .dfm -> .lfm, но имеет некоторые проблемы с .pas файл. Я должен был вручную:
добавить единицы Lazarus к применению:
использует {$ IFDEF FPC} LCLIntf, LResources, {$ ENDIF}
Условный компиляции Delphi формы {$ R * .dfm}:
{$ IFNDEF FPC} {$ R * .dfm} {$ ENDIF}
Добавить .lrs ресурс в коде инициализации:
инициализации {$ IFDEF FPC} {$ я myunit.lrs} {$ ENDIF}
Да, это было. Конвертер из Lazarus сделал файл .lfm, но имеет некоторые проблемы с .pas-файлом. Дополнительная информация в обновленном вопросе. –