在 Delphi 中的另一个模块中使用全局 class 对象

Use global class object from one module in other in Delphi

我想要一个class对象在Delphi的一个模块和其他模块(.pas-files,也许称它为模块不正确,我'我不是很熟悉 Delphi) 能够使用这个全局变量。它是一种不在某些全局函数内初始化全局对象并让其他模块直接使用该全局对象的方法吗?没有任何全局功能。可能吗?

只需在单元的 interface 中声明变量,然后根据需要在其他单元的 uses 子句中使用该单元。您可以在其单元的 initialization 部分中初始化变量。

UnitA.pas:

unit A;

interface

type
  TMyClass = class
    // members as needed...
  end;

var
  GlobalObj: TMyClass;

implementation

// implement TMyClass methods as needed...

initialization
  GlobalObj := TMyClass.Create;
finalization
  GlobalObj.Free;

end.

UnitB.pas:

unit B;

...

uses
  ..., A;

// use A.GlobalObj as needed...

end.