如何在过程中声明静态变量(100分)

  • 主题发起人 主题发起人 hansheng
  • 开始时间 开始时间
H

hansheng

Unregistered / Unconfirmed
GUEST, unregistred user!
各们大虾,如何在过程中声明表态变更,Delphi没有Static这种批示符
 
procedure pro(var a:integer);
引用参数!!!
procedure pro(a:integer);
区别
 
在过程或是函数当中定义类型长量(typed constant)就是静态常量了

const StcVar:Integer = 0;
 
cheka 的看法正确
 
我试了,可以。还是第一次知道这样声明过程静态常量。
 
类型常量(Typed constants)和普通常量(True constants), 是不一样的,
后者初始化以后值就不可以改了。
如果编译不成功,需要在前面打开{$j+}开关
写一个小sample,应该没问题了吧
{$j+}
procedure TForm1.Button1Click(Sender: TObject);
const StcVar:integer = 0;
begin
StcVar := StcVar + 1;
label1.Caption := inttostr(StcVar);
end;

 
谢谢.真没想到delphi是这样实现
我写了一个递归函数,取出Treeview的一个TreeNode节点下所有的节点的数据,
如节点的Text, level(节点自己都有这个属性)等
type
Tbmpobj = class
level : integer;
bm : TBitmap;
end;

procedure TVDisplay(Node : TTreeNode);
var
i : integer;
const DepthLevel : Integer = 0;
begin
Inc(DepthLevel);
bmpobj[Node.AbsoluteIndex].level := DepthLevel;
ListBox1.Items.AddObject(Node.Text, bmpobj[Node.AbsoluteIndex]);
if Node.HasChildren then
begin
for i := 0 to Node.Count-1do
TVDisplay(Node.item);
end;
Dec(DepthLevel);
end;
 
后退
顶部