问题标签 [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 - Indy 10 中的 TIdHTTP
我曾经在 Delphi 6 天使用 Indy,现在我正在使用 Indy 10。我想做的事情非常简单,但我没有看到一种简单的方法,所以我一定错过了一些东西。
我想做的是这样的:
这是我正在使用的实际代码:
请求完成后,http_result 应该包含来自指定 URL 的 HTML。然而这似乎不起作用,所以我觉得我可能应该使用组件的 IOHandler 属性或 OnWork 事件 - 但是对我来说用法似乎并不明显,而且我找不到任何工作示例与谷歌。我相信这是以前做过的事情,所以任何帮助都将不胜感激。
附加信息:本着更具体的精神,我想知道: 1. 我是否一开始就这样做了(或者我错过了什么?)。2. 如果是这样,为什么它不起作用。3. 我使用的compiler/os/Indy组合总是有可能存在bug。(虽然它应该工作)。
我应该提一下,我总是会弹出“连接正常关闭”。这似乎是一个例外,它可能会干扰函数的结果。我试图用 TRY...FINALLY 来捕捉它,但它不起作用。我想可能是因为 Indy 在 Get 方法运行后在后台触发了异常。
最后,这里是运行程序的截屏视频,以消除任何混淆: http://screencast.com/t/NDMzNTQ5 我希望 HTML 能够填充第二个备忘录框。
delphi - 从 Delphi 转换为 Lazarus 的 GUI 应用程序中的空主窗体
我已将我的 2 个 GUI 应用程序从 Delphi 转换为 Lazarus。这两个应用程序都针对 Win32 平台、i386 和 GUI 进行编译。主窗体是使用 Lazarus 工具转换的,可以从 IDE 进行编辑。但是当我运行这样的应用程序时,主窗体并没有出现,只有空白窗体,没有任何控件。
我试图调试这个。它运行初始化部分中的所有代码,并运行来自 .lpr 项目的代码,但是在 CreateForm() 中发生了一些错误,因为它没有在主窗体 OnCreate 事件中运行代码。在事件日志中,我可以看到我写给它的所有文本,'<App.Run'
在我关闭这个空表单后出现。
.lpr 项目中的代码:
我检查了我是否能够从 Lazarus 创建简单的 GUI 应用程序,但是两个转换后的 GUI 应用程序都不能按预期工作。有什么问题?我错过了什么吗?也许拉撒路写的许多警告和提示之一很重要?
当我运行我的应用程序时,Lazarus 写道:
编辑:
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}
pascal - $apptype 是最佳实践评论吗?
我刚开始使用 FPC 来练习更多关于 Pascal 的旧知识,但现在对于 Linux,我开始在“程序”声明之后看到很多这样的评论:
但这是最佳实践评论还是一种声明?
user-interface - 仅使用 FPC 的 GUI
我想知道如何在不使用 Delphi 语言(Object Pascsl)的情况下开发 GUI 应用程序(32 位),只需使用安装了 Lazarus 的 FPC(Pascal)。谢谢。
delphi - 有没有人有一个很好的例子来说明如何使用 Synapse 的心跳功能?
我正在为 Delphi 使用 Synapse,但是在 HTTP 下载期间,当然,GUI 会冻结。查看文档,他们建议使用 OnHeartbeat 方法。
(见http://www.ararat.cz/synapse/doku.php/public:howto:heartbeat)
不幸的是,他们实际上并没有给出任何代码示例,虽然概念很简单,但用法并不明显。
这是每个套接字(对象)设置,还是每个应用程序(类)设置?另外,回调过程本身被定义为一个对象,这有点不寻常。有谁真正使用过这个愿意分享一个示例代码片段吗?
flash - 谁能指出我在 Delphi 或 FreePascal 中的 AMF 库?
我对常见的嫌疑人(Google Code、Source Forge、SO)进行了简单的搜索,但没有找到任何关于 AMF 或 Flash/Flex 远程处理项目的提示。
有没有人偶然发现了这种性质的项目?
delphi - Free Pascal 可以从 Apache Maven 之类的东西中受益吗?
Apache Maven是 Java 开源生态圈中非常流行的构建和依赖管理工具。我做了一些测试,看看它是否可以处理编译的Free Pascal / Delphi 单元,并发现它很容易实现。所以有可能
- 在公共 Maven 存储库中发布为 Free Pascal(或 Delphi)预编译的开源库
- 在此存储库中包含包含依赖信息的元数据
- 在命令行使用Maven从公共仓库下载开源库,并自动解析所有依赖
- 本地存储库,作为代理,可用于缓存常用的二进制文件
- 自动校验和生成和验证(由 Maven 提供)将降低下载损坏的二进制文件的风险
- 源代码甚至文档文件都可以随二进制文件一起提供
- 可以提供带有或不带有调试信息的二进制文件
- Hudson、TeamCity或CruiseControl等持续集成服务器可用于在将更改提交到源代码控制系统时构建项目,并通知开发人员构建错误
这种依赖管理方式对于使用许多具有复杂依赖关系的第三方库的开源项目可能非常有益。它将避免使用错误版本引起的典型冲突。
对于开发人员来说,编辑和构建项目的工作流程将减少到最低限度:
- 从内部版本控制系统签出项目源代码
- 编辑源文件
- 运行
mvn package
以自动下载所有必需的第三方库(预编译单元)(如果它们尚未在工作站的本地存储库中) - 编译运行
项目文件夹中唯一需要的 Apache Maven 附加文件是包含项目信息的 POM.XML 文件。
编辑:虽然 Maven 可用于一些必需的任务,但在本机 Free Pascal 中实现像 Maven 这样的解决方案将有一些优势:不需要 Java SDK,支持所有可以使用 Free Pascal 的开发平台,在 Pascal 中进行维护和插件开发。
使用类似 Maven 的工具仅对开源项目没有帮助 - 商业项目也可以以相同的方式访问和使用公共 Maven 存储库中的工件。
Maven 特性列在http://maven.apache.org/maven-features.html
更新:
一个用例可能是 Lazarus 的构建,其中 Maven 将下载所有必需的库并使用必要的构建路径参数调用编译器。对较低级别的依赖项的更改将自动传播到父构建。
可能的好处:
- 设置新工作站所需的时间更少,无需手动安装第三方库
- 更少由错误库版本引起的错误,检测版本冲突(例如,如果两个库依赖于第三个库的不同版本)
- 内部创建的工件可以添加到本地 maven 存储库并在开发人员和项目之间共享,所有工件与元数据的中央存储
- 构建是可重现的,只需使用相同的源和项目元数据文件 (pom.xml)
- 可以减少开发时间并增加项目稳定性
更新#2:FPMake
Free Pascal的FPMake构建系统似乎是一个很有潜力的工具,在许多细节上它与 Maven 非常相似:
- FPMake 是为 FPC 开发和分发的基于 Pascal 的构建系统
- FPMake 通过定义一些限制(如标准目录)来标准化构建
- 该命令
fppkg <packagename>
将在数据库中查找包,将其解压缩,然后编译 fpmake.pp 并运行它 - 它有标准的构建目标(清理、构建、安装……)
- 它可以创建一个适合导入存储库的“清单”文件(如
mvn deploy
或mvn install
),清单是一个 XML 文件,看起来非常类似于 Maven 中的 pom.xml:
FPMake清单文件:
freepascal - fpmake.pp 使用了什么,现在还在使用吗?
我用过一次,不是很好,因为我发现很难通过一些像样的示例/文档获得,但这是完成环境的好方法。
它仍然是一个标准还是被放弃了?
我在哪里可以找到初学者的操作方法和高级方法,以便我可以在使用中成长?
谢谢。
makefile - fpcmake 和 Makefile.fpc,我在哪里可以得到一些培训?
我从来没有使用过这些,但它们列在主要的 Free Pascal 网站上,我真的很想亲自动手:
- 初学者指南,让我开始
- 进阶指南,助我成长
所有这些以防它仍然被使用/标准。
谢谢
console - Catching stack-trace in Free Pascal
I have a console application written in Free Pascal, that like most larger applications sometimes crashes. As this application is live, I usually ask people to write me down the stack-trace on crash -- I distribute it with both debug and lineinfo. However, the application uses FPC video.pas output, and sometimes the text output stacktrace is not visible.
Is there a way to intercept the text that is written on unhandled exceptions WITH the stack trace, so I can write it to file? I can't just pipe standard error to a file, because FPC video somehow doesn't work with that, and also I'd like people just running the executable not a batch or shell file.
As an example, I'd like to catch this to a file or other output source:
Any possibility to do that cleanly?