问题标签 [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.
delphi - Lazarus 应用程序中的启动画面问题
我正在将一个 Delphi 应用程序移植到 FPC/Lazarus,这个应用程序在闪屏中显示信息。当单元有初始化部分时,这个初始化部分会调用类似的东西:
这在 Delphi 中有效,但是当我使用 FPC/Lazarus 编译它时,当我使用启动屏幕创建表单时出现异常:
我发现,表单可以在Application.Initialize;
调用后创建,所以我的解决方法是在ScreenInfo.Initialized=true
. 它有效,但不显示所有信息。有没有办法从单元初始化部分显示启动形式,之前Application.Initialize;
?
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
delphi - 对象在主程序中崩溃,但在移动到单元时不会
我编写了一个自定义 SDL GUI 工具包(源代码在http://sourceforge.net/projects/lkgui/files/上)并且我遇到了继承对象的问题。
当对象在主程序中时,不会调用构造函数,因此程序没有正确初始化对象,并且在某些命令后崩溃(具体来说,TStartGameButton 继承自 GUI_Canvas 继承自 GUI_Element 并且任何未在 GUI_Element 中定义的东西都会崩溃带有 EAccessViolation 的程序)。当对象被放置在一个单元内时,这个问题就消失了。
我知道我可以把它留在单元中,但这会导致一些丑陋的代码,希望可以避免。
有谁知道为什么会发生这种情况以及如何避免它?
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 我做错了什么?
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? :(
delphi - 是否存在将 DFM 文件转换为源代码的工具?
我正在将一个应用程序移植到 FreePasal/Lazarus 并发现他们的表单转换器并不好。我有一个小型实用程序,每次进行更改时,我都需要重新转换、重新布局和重新导入图形。另外,有些事情搞砸了。
我想知道是否存在将 DFM 文件转换为 delphi 源代码的自动工具,所以我可以更轻松地做到这一点。如果源代码不兼容 FPC,则没有问题。
pascal - 为什么我会收到 NZEC 错误?
我在 Pascal 工作,我不明白为什么在提交问题时会出现 NZEC(非零退出代码)错误。在我的电脑上,它完美运行。你能给我你的意见吗?
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)。”
events - Lazarus - 为什么我不能将事件分配给运行时组件?
我有这个 Lazarus 程序:
tlac.OnClick := OnTlacitkoClick;
但是编译器在表达式上说以下错误:
unit2.pas(63,32) 错误:为调用“OnTlacitkoClick”指定的参数数量错误
我搜索过,认为这是Delphi中的合法表达。我只想注册OnTlacitkoClick
为tlac.OnClick
事件处理程序,而不是调用此过程。
代码有问题吗,还是我必须在 Lazarus/FreePascal 中做不同的事情?
delphi - 哪个更适合 pbx 事件,TIdTCPServer 还是 TIdTCPClient?
我正在尝试一些 IP PBX 系统,Asterisk、Freeswitch 和 Yate,以注册 PBX 中的事件,我想知道这些组件中哪个更好。
该组件应该向 PBX 注册事件,接收它们,发送一些响应并发出一些命令。两者哪个更合适?