如何在DPR范围内访问delphi函数
我对旧的Delphi程序(D7)的维护有问题。很多程序逻辑都在DPR文件中(这不是一个窗口程序),有些单元提供了对数据库的访问等功能。我们需要从DB单元中进行一些调试,但调试功能在DPR中。我们不能轻易地去掉调试功能,因为它使用了DPR特有的东西,比如它的主管。把它分开就像试着把意大利面和肉丸酱分开一样 那么,我们如何调用从下级使用的单元在DPR范围内声明的函数呢?等价于::C++中的运算符?< /P>如何在DPR范围内访问delphi函数,delphi,Delphi,我对旧的Delphi程序(D7)的维护有问题。很多程序逻辑都在DPR文件中(这不是一个窗口程序),有些单元提供了对数据库的访问等功能。我们需要从DB单元中进行一些调试,但调试功能在DPR中。我们不能轻易地去掉调试功能,因为它使用了DPR特有的东西,比如它的主管。把它分开就像试着把意大利面和肉丸酱分开一样 那么,我们如何调用从下级使用的单元在DPR范围内声明的函数呢?等价于::C++中的运算符?< /P> 请不要告诉我重新设计应用程序。我很想去,但我们没有必要的时间。另外,如果我们重新设计这只小狗
请不要告诉我重新设计应用程序。我很想去,但我们没有必要的时间。另外,如果我们重新设计这只小狗,它就不会在德尔福了。你不能。单元层次结构是刚性的 有两种可能的选择:
- 将.dpr的相关零件拉到新装置上。请记住,将使用转移到实现可能会中断导入周期。createform*的东西可能无法安全移动,这可能会让项目经理感到不安
- 或者定义一些回调函数(函数、方法类型,如C中的functionpointer),并将代码从相关单元初始化移到一个从.dpr调用的过程(如果需要)
.dpr是最基本的pascal项目文件 我们可以在项目中使用任何单位文件,因此,您可以使用 单元中的功能/程序 如有必要,您可以在单元名称前加前缀以访问 职能/程序 如果函数/过程属于特定类,则需要 创建实例以访问函数/过程,因为 这是一种方法 无论如何,Delphi使用对象pascal作为其核心,您可以访问 具有法律效力的任何必要方法/程序/功能/属性 pascal概念和对象pascal概念 无论您需要调用哪个文件,并且除了
是一些外部库的贴花文件。Sinple,优雅,有效,谢谢。这将为我们赢得适当重构代码的时间。
uses
Unit1;
function DoSomething(Par: Integer): Integer;
begin
...
end;
...
begin
DoSomethingVar := DoSomething;
...
end;
unit Unit1;
interface
...
var
DoSomethingVar: function(Par1: Integer): Integer;
...
implementation
...
SomeResult := DoSomethingVar(SomeParameter);
...