在delphi中怎么表示和使用静态的变量
1个回答
2017-03-23 · 知道合伙人软件行家
关注
展开全部
delphi 语言中,通常使用 const 关键字来定义声明一个静态常量,如果想使“静态常量”变成“静态变量”,对于 C++ 之类的语言可以使用 static 作为关键字指示声明,而在 delphi 里,通过 {$J+} 和 {$-} 编译指示字变通声明一个静态变量。
以下关于这两个指示字的说明资料:
以下用编写的静态变量的两个应用场合实例代码来说明,在 delphi 语言中,怎么表示和使用静态的变量:
1、静态局部变量
function TForm1.StaticTest(str: string): string;
{$J+}
const StaticCount: Integer = 0;//定义可修改的静态常量,作为累加器
{$J-}
begin
StaticCount := StaticCount + 1;
Result := str + ' ' + IntToStr(StaticCount);
end;
//局部静态变量测试
procedure TForm1.Button1Click(Sender: TObject);
var
i: Integer;
s: string;
begin
for i := 1 to 10 do
begin
s := StaticTest('运行次数: ');
end;
ShowMessage(s);
end;
运行代码截图:
注意代码中,并没有进行 StaticCount 的累加,而结果显示为 10。
2、类静态变量
先定义一个包含静态常量的类:
type
TMyClass = class
NormalVal: string;
{$J+}
const staticVar: string = '原始常量值';
{$J-}
end;
再编写测试代码:
//类静态变量测试
procedure TForm1.Button2Click(Sender: TObject);
var
i: Integer;
s: string;
MyClass1,MyClass2: TMyClass; //声明两个TMyClass的实例
begin
MyClass1 := TMyClass.Create; //构造 MyClass1
MyClass1.NormalVal := 'MyClass1'; //普通类变量赋值
ShowMessage(MyClass1.staticVar + ' ' + MyClass1.NormalVal);
MyClass2 := TMyClass.Create; //构造 MyClass2
MyClass2.NormalVal := 'MyClass2'; //普通类变量赋值
ShowMessage(MyClass2.staticVar + ' ' + MyClass2.NormalVal);
//给 MyClass1 中的静态变量赋值
MyClass1.staticVar := '由 MyClass1 做了修改赋值';
//注意下面代码中,显示的是 MyClass2 中的成员
//MyClass2 中的 staticVar 并没有进行修改
//作为对比,注意同时显示的 MyClass2 中的普通变量,并没有变动
s := 'MyClass2.staticVar 的值(静态): ' + MyClass2.staticVar + #13#10 + #13#10 +
'MyClass2.NormalVal 的值(普通): ' + MyClass2.NormalVal;
MessageBox(Handle, PChar(s), '信息提示', MB_OK + MB_ICONINFORMATION);
end;
代码运行截图:
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询