【发布时间】:2016-08-27 23:34:40
【问题描述】:
在我的课堂上,我需要使用一个静态变量(static int next_id; 在 C++ 中)
我用
private
class var next_id: Integer;
我收到错误:PROCEDURE or FUNCTION expected。如何用 Delphi 5 声明一些变量?
【问题讨论】:
-
我认为一个简单的本地(在“实现”中)变量会做到这一点。
在我的课堂上,我需要使用一个静态变量(static int next_id; 在 C++ 中)
我用
private
class var next_id: Integer;
我收到错误:PROCEDURE or FUNCTION expected。如何用 Delphi 5 声明一些变量?
【问题讨论】:
在 Delphi 5 中,你不能。 Delphi 5 中还没有类变量。
不过,下一个最好的事情是在单元的实现部分中使用全局变量。
unit Whatever;
...
implementation
var
next_ID: Integer;
...
initialization
next_ID := 0;
end.
或者,在最底部:
begin
next_ID := 0;
end.
【讨论】:
initialization 和finalization 部分。在你的情况下,这似乎是最理想的事情。
扩展 Rudy 的答案...
Delphi 5 还没有这个功能。但是你至少可以声明一个全局变量。我不会复制 Rudy 的代码,但我会补充一点,为了初始化它们(并在必要时清理它们),您应该使用单元的 initialization(和 finalization)部分。这些在 Delphi 单元的最底部,就像这样......
unit Whatever;
...
interface
...
implementation
...
initialization
MyGlobalVar := TMyGlobalVar.Create;
finalization
FreeAndNil(MyGlobalVar);
end.
或者在你的情况下......
initialization
next_ID := 1;
尤其是您的场景不需要finalization 部分。
【讨论】:
类变量声明示例:
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(非常非常老)不支持此功能。
【讨论】:
Delphi 5 (very very old) do not support this feature. answered 12 hours ago了吗?
Delphi 5 (very very old) do not support this feature. answered 12 hours ago了吗?