【发布时间】:2009-11-25 09:58:22
【问题描述】:
我已将我的 2 个 GUI 应用程序从 Delphi 转换为 Lazarus。 这两个应用程序都针对 Win32 平台、i386 和 GUI 进行编译。 主窗体是使用 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 创建简单的 GUI 应用程序,但两者都转换了 GUI 应用程序无法按预期工作。有什么问题?我错过了什么吗? 也许拉撒路写的许多警告和提示之一很重要?
当我运行我的应用程序时,Lazarus 会这样写:
windres: warning: 14: "MAINICON": 1045: duplicate value
windres: warning: 16: 1: 1045: duplicate value
Project "Tst_fpc" successfully built. :)
编辑:
Lazarus 转换工具转换 .dfm -> .lfm,但 .pas 文件有一些问题。我不得不手动:
-
添加 Lazarus 单位以供使用:
用途 {$IFDEF FPC} LCLIntf,LResources, {$ENDIF}
-
条件编译Delphi表格{$R *.dfm}:
{$IFNDEF FPC} {$R *.dfm} {$ENDIF}
-
在初始化代码中添加.lrs资源:
初始化 {$IFDEF FPC} {$i myunit.lrs} {$ENDIF}
【问题讨论】:
标签: delphi lazarus freepascal fpc