问题标签 [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 投票
1 回答
215 浏览

delphi - synmemo 的最大长度是多少?

Sourceforge 的 Synmemo似乎是非常好的 txt 编辑器和代码荧光笔。可惜很久没有升级了。这是一个纯粹的vcl。我想知道它的最大长度是多少。它可以加载的最大 txt 文件是多少?

谢谢

0 投票
1 回答
1900 浏览

lazarus - 如何读取无类型文件的字节头,然后当它们是 Free Pascal 和 Lazarus 中的文件流时使用和显示该数据

我正在尝试使用 Lazarus 学习 Free Pascal,我的一个宠物项目涉及读取一组特定的无类型文件的 64 字节标题,这些文件无法使用文本或 ASCII 相关程序读取和显示(因此不能直接输出到备忘录框等)。

到目前为止,我已经设计了以下代码,我认为它确实读取了标头的 64 个字节,并且我正在使用 TStreams 和“选择目录”对话框来执行此操作,基于通过 Lazarus IRC 收到的建议。我的问题是如何实际使用从标头读入缓冲区的数据?例如,在标题中,有 8 个字节的序列,然后是 16 个字节,然后是 2 个字节,依此类推,我想“处理”以生成其他输出,这些输出最终将转换为字符串以进入我的字符串网格.

到目前为止,我所拥有的一些内容是基于我在这里发现的由 Mason Wheeler 写的接近尾声(http://stackoverflow.com/questions/455790/fast-read-write-from-file-in-delphi),但它只说明如何读入,不说明如何使用。我也读过这个(http://stackoverflow.com/questions/4309739/best-way-to-read-parse-a-untyped-binary-file-in-delphi),但它再次向您展示了如何读取数据也是,但随后不使用数据。收到任何指导!到目前为止,下面的代码只是将单值整数输出到编辑框,而不是例如 8 个十六进制值的范围。

PS - 我是编程新手,所以请温柔!没什么太复杂的。

0 投票
1 回答
1812 浏览

delphi - Delphi:PopupMenu 在我的组件中不起作用

英文翻译(已经有一段时间了,所以可能不完全准确;使用谷歌翻译我遇到问题的部分):

我正在使用 Delphi 中的一个可视组件(它不是标准的 Delphi 组件),它拥有一个名为PopupMenu. 我将组件中的属性PopupMenu与 PopupMenu 相关联,但是当我单击 [鼠标] 的右键时,我什么也看不到。

我还尝试使用以下代码强制它显示:

我有两个问题:

怎么知道鼠标右键是激活的?你们有没有遇到过这种类型的问题?谢谢您的回答。

谢谢

编辑

这是我用来执行该过程的PopupMenu1:过程

0 投票
1 回答
6128 浏览

pascal - 帕斯卡 - 读取/读取函数杂质?

我真的很感兴趣 - 你为什么需要把

从键盘读取一些值到变量后的行?例如,

如果您运行以下代码,然后在键盘上按“1”,您会得到类似的输出

另一方面,如果您添加“readln;” 行,一切都很完美:

我唯一的猜测是不带参数调用readln 会终止读取键盘输入的过程。但如果是这样,为什么 read/readln 函数不能自己停止读取输入,以避免这种笨拙?

0 投票
1 回答
2157 浏览

datetime - 如何使用 Pascal 计算日期之间的天数?

我以 DateTime 格式保存日期。计算天数的算法是什么?

0 投票
2 回答
452 浏览

c - 这个独特的文件头“特殊标记”如何告诉 eCryptfs 它是一个 eCryptfs 文件?

我正在编写一个解析 eCryptfs 文件头的程序(使用 Free Pascal,而不是 C)。

标头中的值之一从字节 7 开始,到 15 结束(一个 8 字节值)。它对我有用,因为它是一个将文件唯一标识为 eCryptfs 文件的值。因此,我正在尝试编写我的应用程序以在它在文件中找到此类值时识别它。

但是,标记本身是通过将随机生成的 4 字节值 (X) 与另一个 4 字节静态十六进制值 0x3c81b7f5 (Y) 进行异或运算而生成的。生成的值是 4 个字节,Z。X + Z 一起构成了 8 个字节的特殊标记。Y 本身不存储在文件头中。因此,由于值 0x3c81b7f5 (Y) 从未存储在标头中,因此我无法编写应用程序来查找它,并看到其他 4 个字节是一个静态值与另一个随机值的异或结果,我无法弄清楚它是如何被识别的。

在询问 eCryptfs 程序如何在 eCryptfs Launchpad 站点(https://answers.launchpad.net/ecryptfs/+question/152821 )上将此值识别为“eCryptfs 文件”后,其中一个社区向我推荐了相关的 C 源代码我在下面链接到它。但是,我对 C 的理解不够好,无法弄清楚它是如何识别特殊标记的。谁能帮助我,以便我可以将相同类型的识别过程编码到我自己的应用程序中?我没有我不想要源代码,但我只想有人解释 C 代码是如何工作的“啊,是的,那是一个 eCryptfs 文件!”所以我知道我需要编写我的应用程序来做什么。

http://fxr.watson.org/fxr/source/fs/ecryptfs/crypto.c?v=linux-2.6;im=excerpts#L1029

0 投票
1 回答
184 浏览

installation - 在 Lazarus 上分发自安装包的方法是什么

我已经看到了用于 Delphi 的虚拟字符串树的自安装可执行文件。

我正在考虑为 Lazarus/FreePascal 做类似的事情,所以我的问题更像是调用地图或指令列表:

如何确定包文件夹在哪里?如何将包添加到 Lazarus 的列表中?如何触发 Lazarus 的重新编译?

请记住,我不是一个糟糕的 Object-Pascal 程序员,但在 FPC 和/或 Lazarus 工具链的文件夹结构和依赖关系方面,我是一个完整的新手。

非常感谢,
格斯

PS:我知道 Marco 会回答,但是社区的其他人可以努力并提供更多意见吗?
无论哪种方式,非常感谢所有人!

0 投票
2 回答
637 浏览

linux - 在 TEdit 中注册输入(Delphi/Free pascal)

我有一个 TEdit 字段,我需要在关注它的同时按下 ENTER/RETURN 按钮从动作列表中调用一个动作(就像在大多数搜索引擎中一样)。使用 Lazarus 0.9.28.2-12 和 Ubuntu 11.04

0 投票
2 回答
4753 浏览

loops - 帕斯卡的无限循环,怎么来的?

我编写了一个 Pascal 函数来替换文件中的整行或其中的一部分,以便在 Inno Setup 中使用:

它过去工作得很好,但只用替换文件替换了 FilePath 指定的文件的每一行上第一次出现的 OldLinePart。那是我添加重复循环的时候。逻辑是Pos()当没有找到更多的事件时返回 0。然后它应该继续下一行。然而,事实是,循环一直在无限循环,我不知道为什么。我尝试在of 子句中添加一个Break语句,但没有运气......elseif FoundAtPos > 0

编辑:显然已经很晚了。我用一个很长的字符串替换了 OldLinePart ......其中包含相同的单词。

该问题已解决如下。

0 投票
2 回答
2463 浏览

delphi - Delphi 依赖注入:框架与委托构造函数

当您可以简单地使用以下模式时,为什么还要使用依赖注入框架?



我试图掌握使用框架而不是这样做的好处,但到目前为止,我只看到了这种简单方法的好处:

1)参数化构造函数更容易实现。例如: var CreateSomeOtherService: function(aValue: string);

2) 更快(无需在容器中查找)

3) 更简单

这就是我将如何使用它:

您使用 DI 框架而不是这种方法的理由是什么?

使用 DI 框架会是什么样子?

据我所知,如果您使用 DI 框架,而不是针对接口注册具体类,然后系统的使用者会询问给定框架的实现。所以会有一个注册电话:

当您需要 ISomeInterface 实现时,您可以向 DI 框架询问它:

现在很明显,如果您确实需要传递参数来创建 ISomeInterface,那么使用 DIFramework 会变得更加复杂(但使用上述方法很简单)。