问题标签 [freepascal]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
1978 浏览

delphi - Lazarus 应用程序中的启动画面问题

我正在将一个 Delphi 应用程序移植到 FPC/Lazarus,这个应用程序在闪屏中显示信息。当单元有初始化部分时,这个初始化部分会调用类似的东西:

这在 Delphi 中有效,但是当我使用 FPC/Lazarus 编译它时,当我使用启动屏幕创建表单时出现异常:

我发现,表单可以在Application.Initialize;调用后创建,所以我的解决方法是在ScreenInfo.Initialized=true. 它有效,但不显示所有信息。有没有办法从单元初始化部分显示启动形式,之前Application.Initialize;

0 投票
1 回答
1236 浏览

delphi - Lazarus/FPC 上的 WM_COMMAND 问题

我有 MainMenu 的表单,我想在用户从菜单中选择命令项时进行拦截。这适用于德尔福:

在 MainMenu 我添加了一些项目,当我从菜单中选择这些项目时,我的 Memo1 会填充:

我将此应用程序移植到 FPC/Lazarus,但似乎没有调用 WM_COMMAND 处理程序!当我在 Delphi 中设置断点时TForm1.WMCommand,Delphi 在主窗体出现之前停止了很多次。Lazarus 从未在这个断点上停下来。我认为 Lazarus 中的 WM_COMMAND 有问题,但也许我不知道。任何的想法?

我在 WinXP 上使用 Lazarus 0.9.28.2 beta 和 FPC 2.2.4。

编辑:

使用 Winspector 我检查了 MainMenu 生成 WM_COMMAND:

我认为 WM_COMMAND 消息方法处理中的 Lazarus/FPC 存在错误,我报告了它:http ://bugs.freepascal.org/view.php?id=15521

0 投票
2 回答
202 浏览

delphi - 对象在主程序中崩溃,但在移动到单元时不会

我编写了一个自定义 SDL GUI 工具包(源代码在http://sourceforge.net/projects/lkgui/files/上)并且我遇到了继承对象的问题。

当对象在主程序中时,不会调用构造函数,因此程序没有正确初始化对象,并且在某些命令后崩溃(具体来说,TStartGameButton 继承自 GUI_Canvas 继承自 GUI_Element 并且任何未在 GUI_Element 中定义的东西都会崩溃带有 EAccessViolation 的程序)。当对象被放置在一个单元内时,这个问题就消失了。

我知道我可以把它留在单元中,但这会导致一些丑陋的代码,希望可以避免。

有谁知道为什么会发生这种情况以及如何避免它?

0 投票
1 回答
307 浏览

optimization - 为什么 WPO(整体程序优化)没有对我的程序大小做任何改进?(FPC 2.4.0)

我使用 FPC 2.4.0 for WinXP(来自官方页面的二进制文件),也尝试使用相同的版本,但从我的 comp 上的源代码编译。我放了这样的东西:

I:\pascal\fpc-2.4.0.source\fpc-2.4.0\compiler\ppc386 -FWserver-1.wpo -OWsymbolliveness -CX -XX -Xs- -al -Os -oServer1.o Server
I:\pascal\fpc-2.4.0.source\fpc-2.4.0\compiler\ppc386 -FWserver-2.wpo -OWsymbolliveness -Fwserver-1.wpo -Owsymbolliveness -CX -XX -Xs- -al -Os -oServer2.o Server
..(up to 100 times)

但总是相同的 .wpo 文件和相同的 .o 大小(.s,程序集文件间歇性更改)

我也没有(通过编译器消息),未使用的变量仍然存在。也试过 -OWall -owall 我做错了什么?

0 投票
2 回答
108 浏览

design-patterns - Help me with a solution for what could be solutioned by virtual static fields... in FPC

I'm doing an event manager in Freepascal
Each event is an object type TEvent (=object), each kind of event must derive from this class.
Events are differentiated by an integer identificator, assigned dynamically.
The problem is that i want to retrieve the event id of an instance, and i can't do it well.

  • All instances of a class(object) have a unique id => so it should be static field.
  • All classes have a diferent id => so it should be virtual.
  • Event ids are assignated in run time, and can change => so it can't be a simple method

In sum, I can't put all this together.
I'm looking for an elegant solution, i don't want to write a hardcoded table, actualizing it in every constructor... etc, i'd prefer something taking advantage of the polymorphism
Can anyone help me with another technical or design solution?
I remark I don't want to use class instead of object construct.(property doesn't work on objects? :(

0 投票
2 回答
1379 浏览

delphi - 是否存在将 DFM 文件转换为源代码的工具?

我正在将一个应用程序移植到 FreePasal/Lazarus 并发现他们的表单转换器并不好。我有一个小型实用程序,每次进行更改时,我都需要重新转换、重新布局和重新导入图形。另外,有些事情搞砸了。

我想知道是否存在将 DFM 文件转换为 delphi 源代码的自动工具,所以我可以更轻松地做到这一点。如果源代码不兼容 FPC,则没有问题。

0 投票
1 回答
281 浏览

pascal - 为什么我会收到 NZEC 错误?

我在 Pascal 工作,我不明白为什么在提交问题时会出现 NZEC(非零退出代码)错误。在我的电脑上,它完美运行。你能给我你的意见吗?

0 投票
2 回答
3091 浏览

macos - 如何使用 Free Pascal 编译 64 位 Mac 程序?

我的 Mac 上有一个由 GCC 编译的 x86_64 库,我想将它与使用 Free Pascal 2.4 编译的 Pascal 代码链接。我提供哪些选项fpc以使其生成 64 位代码?没有任何选项,我只能得到 32 位 .o 文件。

我正在使用从 SourceForge 下载的fpc-2.4.0.intel-macosx.dmg,但是当我运行时fpc -i,它列出的唯一目标 Macintosh 平台是“Darwin for i386”,尽管 2.4 发行说明说它可以针对“64位 Mac OS X (x86_64/ppc64)。”

0 投票
2 回答
5571 浏览

events - Lazarus - 为什么我不能将事件分配给运行时组件?

我有这个 Lazarus 程序:

tlac.OnClick := OnTlacitkoClick;但是编译器在表达式上说以下错误:

unit2.pas(63,32) 错误:为调用“OnTlacitkoClick”指定的参数数量错误

我搜索过,认为这是Delphi中的合法表达。我只想注册OnTlacitkoClicktlac.OnClick事件处理程序,而不是调用此过程。

代码有问题吗,还是我必须在 Lazarus/FreePascal 中做不同的事情?

0 投票
3 回答
1943 浏览

delphi - 哪个更适合 pbx 事件,TIdTCPServer 还是 TIdTCPClient?

我正在尝试一些 IP PBX 系统,Asterisk、Freeswitch 和 Yate,以注册 PBX 中的事件,我想知道这些组件中哪个更好。

该组件应该向 PBX 注册事件,接收它们,发送一些响应并发出一些命令。两者哪个更合适?