如何在DPR范围访问delphi函数

Bob*_*ore 5 delphi

我对旧的 Delphi程序(D7)的维护有问题.很多程序逻辑都在DPR文件中(这不是一个窗口程序),有些单元提供了访问数据库的功能.我们需要从DB单元中进行一些调试,但调试功能在DPR中.我们不能轻易剥离调试功能,因为它使用DPR独有的东西,比如它的主管道.把它分开就像试图分开意大利面和肉丸酱.

那么我们如何从下级使用单元调用在DPR范围内声明的函数?什么是C++中的::运算符的等价物?

请不要告诉我重新设计应用程序.我很乐意,但我们不会得到必要的时间.此外,如果我们重新设计这只小狗,它将不会在德尔福.

Uwe*_*abe 14

您可以在单元中声明与DPR中函数的签名匹配的方法变量.在程序的最开始,您将方法变量设置为函数.在单元内部,您可以调用方法变量.

例:

(DPR)

uses
  Unit1;

function DoSomething(Par: Integer): Integer;
begin
...
end;

...
begin
  DoSomethingVar := DoSomething;
  ...
end;
Run Code Online (Sandbox Code Playgroud)

(单元)

unit Unit1;

interface
...
var
  DoSomethingVar: function(Par1: Integer): Integer;
...
implementation
...
  SomeResult := DoSomethingVar(SomeParameter);
...
Run Code Online (Sandbox Code Playgroud)