4

http://en.wikipedia.org/wiki/REPL阅读–eval–print_loop

德尔福有这样的事情吗?在处理几乎没有记录的边界情况时,探索诸如 Windows APi 之类的 DLL 并勾画它们的用法会非常有用。

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

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

对于 Delphi 对象,大多数情况下它会在断点处暂停并使用 Evaluate/Modify 窗口,但它仅适用于 Delphi 对象,而不适用于 DLL;它不能使临时变量缓存值等。

4

1 回答 1

3

这不是您真正要寻找的,因为 Delphi 是一种静态类型的编译语言,但如果您真的坚持能够输入一些 pascal 并查看它是否有任何作用,您可以尝试TJvInterpreterJedi 中的组件VCL。

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

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

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

在此处输入图像描述

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

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

于 2012-08-03T20:41:43.653 回答