delphi - Delphi IDE 的 REPL?

标签 delphi delphi-xe2 read-eval-print-loop

http://en.wikipedia.org/wiki/REPL读取-评估-打印循环

Delphi 有这样的东西吗? 在处理几乎没有记录的边界情况时,探索 Windows APi 等 DLL 并概述它们的用法将非常有用。

我尝试过 pascal 脚本,例如 Cnwizards 中的脚本,但它不太舒服。 例如,它不能使用像 Windows.pas 这样的单位,你必须为它制作一些你自己的奇怪的 stub 。

无论如何,这些脚本比 Repl 更不容易用于“尝试这个尝试那个”场景。

对于 Delphi 对象,大多数人都会在断点处暂停并使用评估/修改窗口,但它仅适用于 Delphi 对象,不适用于 DLL;它不能创建临时变量来缓存值等。

最佳答案

这并不是您真正想要的,因为 Delphi 是一种静态类型的编译语言,但如果您确实坚持能够输入一些 pascal 并查看它是否执行任何操作,您可以尝试 Jedi VCL 中的 TJvInterpreter 组件。

请注意,这种体验与使用 python 完全不同。您不能只输入“uses module”并按回车键,因为 pascal 单元必须完整才能被 JvInterpreter 解释,并且 JvInterpreter 需要您为要导入的每个其他单元编写一个包装器。你会发疯的。我并不是认真建议任何人尝试围绕 TJvInterpreter 构建 REPL。

Delphi 的“交互魔法”元素被称为“设计时环境”以及我们使用“组件”构建的方式。我们甚至不通过编写太多代码来做到这一点,我们用鼠标和键盘直观地完成这一切。它称为 RAD(快速应用程序开发),由 Delphi 中的 VCL(可视化组件库)提供支持,并且(与 REPL 一样)是进行快速开发的众多方法之一。

我们拥有的另一件很像 REPL 的东西是 Delphi 中的这个按钮:

enter image description here

在创建新的空项目后单击它,您添加到新的空项目中的任何代码都会在不到一秒的时间内构建并运行。对我来说已经足够接近 REPL 了。这有点像二进制可执行文件的即时幸福。

写一行。构建并运行(1 秒)。即时。

关于delphi - Delphi IDE 的 REPL?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11795106/

相关文章:

delphi - 在给定时间执行方法(使用线程)

delphi - Delphi 2009 项目配置选项集的层次结构如何?

multithreading - 防止 Delphi MDI 应用程序在外部 DLL 中创建 TApplication

delphi - 项目中文件的设计类属性是什么?

scala - 有没有办法在 Scala 的 REPL 中使用 ctrl-d 作为前向删除?

c# - httprepl : Cannot start the REPL when output is being redirected

delphi - 解析目录和子目录中的所有文件时的 IdFTP 性能问题

Delphi Firedac Update 不应用修改

scala - 如何使包可用于 Scala REPL?

macos - 德尔福XE2 : Display PDF in a Delphi FireMonkey app on OSX