Delphi静态变量

时间:2016-08-27 23:34:41

标签: delphi static delphi-5

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

我用

private
    class var next_id: Integer;

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

3 个答案:

答案 0 :(得分:5)

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

然而,下一个最好的事情是该单元的实施部分中的全局变量。

unit Whatever;

...

implementation

var
  next_ID: Integer;

...

initialization
  next_ID := 0;

end.

或者,在最底层:

begin
  next_ID := 0;
end.

答案 1 :(得分:2)

扩展Rudy的答案......

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

unit Whatever;

...

interface

...

implementation

...

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

或者在你的情况下......

initialization
  next_ID := 1;

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

答案 2 :(得分:-1)

类变量声明示例:

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 declaration。另外,如前所述,Delphi 5(非常老)不支持此功能。