Delphi 静态变量

Delphi static variable

在我的 class 中,我需要使用静态变量(static int next_id;在 C++ 中)

我用

private
    class var next_id: Integer;

我收到错误:PROCEDURE or FUNCTION expected。如何用 Delphi 5 声明一些变量?

在 Delphi 5 中,你不能。 Delphi 5 中还没有 class 变量。

不过,下一个最好的事情是单元的实现部分中的全局变量。

unit Whatever;

...

implementation

var
  next_ID: Integer;

...

initialization
  next_ID := 0;

end.

或者,在最底部:

begin
  next_ID := 0;
end.

扩展 Rudy 的回答...

Delphi 5 还没有这个可用。但是您至少可以声明一个全局变量。我不会复制 Rudy 的代码,但我会添加它以便初始化它们(并在必要时清理它们),您应该使用单元的 initialization(和 finalization)部分。这些放在 Delphi 单元的最底部,就像这样...

unit Whatever;

...

interface

...

implementation

...

initialization
  MyGlobalVar := TMyGlobalVar.Create;
finalization
  FreeAndNil(MyGlobalVar);
end.

或者你的情况...

initialization
  next_ID := 1;

特别是您的方案不需要 finalization 部分。

class 变量声明示例:

unit Unit2;

interface

type
  GlobalData = class
    class var V1: String;
    class var X1: Integer;
  end;

implementation

end.

来自其他单位的使用示例:

procedure TForm1.FormCreate(Sender: TObject);
begin
  GlobalData.V1 := 'Yahoo';
end;

您不需要创建和销毁此 class。它将在其他所有内容之前自动创建。

您的示例中有什么问题:class 变量必须在 class 内声明。我在你的示例中没有看到 class declaration。另外,如前所述,Delphi 5(非常非常旧)不支持此功能。