问题标签 [lazarus]

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 投票
2 回答
568 浏览

delphi - 检查更新

我正在 Lazarus 开发一个应用程序,它需要检查每个Form_Create.

我怎样才能做到这一点?

0 投票
3 回答
10426 浏览

delphi - 在 TListView 上的目录中列出文件

我正在构建一个需要 on Form_Create,填充TListView被调用的程序FileList,我想要填充的目录是编译程序的位置 + \Files,因为我从未使用过TListView我想知道如何做到这一点?

0 投票
2 回答
1660 浏览

windows - 从 Windows 移植到 Linux

我有一个在 Windows 上用 Lazarus 编写的项目,但我想在我的 Windows 计算机上为 Linux 交叉编译它。我怎样才能做到这一点?

0 投票
3 回答
5993 浏览

delphi - 从文件名中删除路径

我正在开发一个需要将文件名解析为TTextField. 如何删除我已经知道的文件扩展名(或认为我可以这样做):

但是如何从中删除文件路径FName

0 投票
2 回答
593 浏览

syntax - 语法高亮是如何构建的?

我现在正在使用 Lazarus 构建一个开发人员编辑器,作为每个优秀的开发人员编辑器,它需要有语法高亮,因此我想知道一些事情:

  • 语法高亮通常是如何构建的(使用许多ifs 来更改 a 上的字体TextField
  • TSynEdit这样做很好吗?
  • 如何使用TSynEdit(链接和资源)?
0 投票
3 回答
1877 浏览

mono - Mono (linux) 中的 DLLImport 崩溃:ical_wrapper_mono_marshal_free

我在 Linux 中遇到了 Mono Interop 的问题。我有一个需要在 C# 程序集中使用的本机共享库(用 Lazarus 制作)。Windows 和 Linux 上的 Mono C# 程序集使用共享库。

程序集在运行时通过 DllImport 加载共享库,并调用生成文件并返回带有新文件名的字符串的导出函数。共享库中的函数工作正常,但在 Linux 中,当函数返回时,Mono 运行时在 Object.__icall_wrapper_mono_marshal_free 处崩溃。在 Windows 上使用 Mono 可以正常工作。

我进行了几次测试,可以看出共享库确实有效(新文件在指定路径生成),但最终运行时崩溃。运行时似乎在将结果字符串封送回程序集方面存在问题,因为如果我使用返回 int 的导出函数,它就可以工作。

我的共享库是这样的:

调用 C# 程序集如下所示:

我尝试了几种替代方法(从导出的函数返回本机字符串,将调用约定更改为程序集和共享库上的 stdcall,更改 DllImport 中的字符集)。

我确定我遗漏了一些东西,但我在谷歌上没有找到任何关于这个问题的信息。

我的崩溃显示:

有任何想法吗?

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 回答
1638 浏览

properties - 在 Lazarus 组件中发布属性会引发“访问冲突”

在 Linux 上的 Lazarus 中,我将一个类注册为一个组件,这样我就可以将它放到一个表单上。

就像一个魅力,除了我可以发布的属性仅限于简单类型,如字符串和整数。
每当我尝试发布像 TStringList 或 TImage 这样的属性时,当我在对象检查器中单击它时,它会引发“访问冲突”。

我将我的代码与标准组件进行了比较,但我看不出它们的不同之处。

那么在对象检查器中使用这些属性需要哪些额外的步骤呢?

0 投票
1 回答
325 浏览

bitmap - 在 Lazarus 中,如何检查 MenuItem 是否分配了位图?

我编写了一些 Lazarus 代码,循环遍历主菜单的菜单项,并需要查看是否为每个菜单项分配了位图。

我试着检查

但这总是返回 true,无论是否分配了位图。

如果没有分配实际图像,猜测位图将填充一个空的。

那么如何检查图像是有效还是空呢?