Delphi动态方法调用

Delphi动态方法调用,delphi,dynamic,methods,invoke,Delphi,Dynamic,Methods,Invoke,有人知道Delphi2009及以下版本的免费库允许您动态调用方法吗 我已经开始为此编写自己的代码,但我觉得这超出了我的能力范围 谢谢“动态调用方法”可能意味着许多不同的事情。简单的后期绑定以声明为virtual或dynamic的方法的形式内置到语言中,您可能一直在使用它们,尤其是virtual方法 但是谈论“动态调用方法”通常会涉及到脚本领域,这使得获取一个对象并让最终用户在运行时通过使用方法的名称来决定调用哪个方法成为可能。如果需要,您需要一个用于Delphi的脚本库 (DelphiWeb脚本

有人知道Delphi2009及以下版本的免费库允许您动态调用方法吗

我已经开始为此编写自己的代码,但我觉得这超出了我的能力范围

谢谢

“动态调用方法”可能意味着许多不同的事情。简单的后期绑定以声明为
virtual
dynamic
的方法的形式内置到语言中,您可能一直在使用它们,尤其是
virtual
方法

但是谈论“动态调用方法”通常会涉及到脚本领域,这使得获取一个对象并让最终用户在运行时通过使用方法的名称来决定调用哪个方法成为可能。如果需要,您需要一个用于Delphi的脚本库

(DelphiWeb脚本)工作得相当好,作者声称它支持D2009,尽管XE上正在进行积极的开发工作。此外,顾名思义,DWS的设计主要考虑到web开发,因此用于将脚本绑定到本地代码区中的对象的框架要比它可能应该的复杂得多

另一个主要的替代方案是RemObjects的库。它支持比D2009更早的版本,其对象绑定系统比DWS简单得多。不幸的是,它的速度也慢得多,而且作者也不太支持它。但是,特别是对于简单的脚本,其中任何一个都应该使您能够允许用户动态地自动化程序中的内容。

“动态调用方法”可能意味着许多不同的事情。简单的后期绑定以声明为
virtual
dynamic
的方法的形式内置到语言中,您可能一直在使用它们,尤其是
virtual
方法

但是谈论“动态调用方法”通常会涉及到脚本领域,这使得获取一个对象并让最终用户在运行时通过使用方法的名称来决定调用哪个方法成为可能。如果需要,您需要一个用于Delphi的脚本库

(DelphiWeb脚本)工作得相当好,作者声称它支持D2009,尽管XE上正在进行积极的开发工作。此外,顾名思义,DWS的设计主要考虑到web开发,因此用于将脚本绑定到本地代码区中的对象的框架要比它可能应该的复杂得多


另一个主要的替代方案是RemObjects的库。它支持比D2009更早的版本,其对象绑定系统比DWS简单得多。不幸的是,它的速度也慢得多,而且作者也不太支持它。但是,特别是对于简单的脚本,任何一个都应该让您能够允许用户动态地自动化程序中的内容。

您的问题相当模糊。除了后期绑定和脚本之外,它还可能意味着使用一个直到运行时才知道名称的方法


这分为两类,COM方法(使用变量类型)或使用RTTI查找和调用的Delphi方法。虽然RTTI在最新的Delphi版本中有所改变,但我认为这将适用于D2009,您的问题相当模糊。除了后期绑定和脚本之外,它还可能意味着使用一个直到运行时才知道名称的方法


这分为两类,COM方法(使用变量类型)或使用RTTI查找和调用的Delphi方法。虽然RTTI在最新的Delphi版本中有所改变,但我认为这将适用于D2009

您所说的“动态调用方法”是什么意思?你能给我们举个例子吗?Delphi已经在动态调用方法了。这就是
virtual
dynamic
指令所做的。如果您指的是按名称动态调用/调用方法:请查看Delphi RTTI类。如果没有,请进一步解释,“动态调用方法”是什么意思?你能给我们举个例子吗?Delphi已经在动态调用方法了。这就是
virtual
dynamic
指令所做的。如果您指的是按名称动态调用/调用方法:请查看Delphi RTTI类。如果没有,请进一步解释。我对DWS很感兴趣,您是否知道任何说明如何从脚本中调用外部方法的文档?如果可以将事件绑定到脚本化方法,也可以。谢谢,我对DWS很感兴趣,您知道有任何文档向您展示如何从脚本中调用外部方法吗?如果可以将事件绑定到脚本化方法,也可以。谢谢