例程S 2 _ 1 4程序清单 program Project1; {$APPTYPE CONSOLE} t y p e TStudent = class // 学生类 Name: string; // 学生姓名 class procedure AddOne; // 学生数增加一个 destructor Destroy;override; // 学生数减少一个 e n d ; v a r S t u d e n t N u m : I n t e g e r ; // 表示当前的学生数 S1,S2: TStudent; // 声明学生类的变量 { TStudent } class procedure TStudent.AddOne; b e g i n S t u d e n t N u m : = S t u d e n t N u m + 1 ; e n d ; destructor TStudent.Destroy; b e g i n S t u d e n t N u m : = S t u d e n t N u m - 1 ; inherited Destroy; e n d ; b e g i n S 1 : = T S t u d e n t . C r e a t e ; S 1 . A d d O n e ; // 调用类方法改变变量S t u d e n t N u m S 1 . N a m e : = '王松' ; Wr i t e l n ( '学生数为:' , S t u d e n t N u m ) ; S 2 : = T S t u d e n t . C r e a t e ; S 2 . A d d O n e ; S 2 . N a m e : = '高大威' ; Wr i t e l n ( '学生数为:' , S t u d e n t N u m ) ; S 1 . F r e e ; S 2 . F r e e ; Wr i t e l n ( '学生数为:' , S t u d e n t N u m ) ; R e a d l n ; e n d . 此处的StudentNum就是当作静态变量用的。 Delphi好像没有提供类变量,只有类方法。
2、DELPHI同样有表态变量
全局变量用的范围大些
局部变量用的范围小些delphi没有静态变量之说 但有可变常量之说
unit Unit1;interfaceuses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;type
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;var
Form1: TForm1;
str:string; // 全局变量,能在整个单元中调用implementation{$R *.dfm}procedure TForm1.Button1Click(Sender: TObject);
var
i: integer; //局部变量,只能在这个过程中使用
begin
//程序体;
end;end.
第二个问题:
我不能确定是否有静态变量,但是我知道可以增加静态计算字段,
我觉得那应该就是你要的静态变量
SelfCounts: Integer = 0; // 记录建立个数的静态变量
我所说的静态变量是:
在A单元中定义的局部变量,在退出单元后再次进入。变量值还保持是退出单元时的值。
有点像PB中共享变量。
我所说的静态变量是:
在A单元中定义的局部变量,在退出单元后再次进入。变量值还保持是退出单元时的值。
有点像PB中共享变量。
我所说的静态变量是:
在A单元中定义的局部变量,在退出单元后再次进入。变量值还保持是退出单元时的值。
有点像PB中共享变量。不好意思.家里没宽带,在网吧上网.回家试试你的说法.
明天结贴.
谢谢大家!
我所说的静态变量是:
在A单元中定义的局部变量,在退出单元后再次进入。变量值还保持是退出单元时的值。
有点像PB中共享变量。不好意思.家里没宽带,在网吧上网.回家试试你的说法.
明天结贴.
谢谢大家!
var aaa:integer=12345
const
I: Integer = 1;
{$J-}
begin
Inc(I);
ShowMessage(IntToStr(I));
end;你把这段代码写在一个Button的OnClick事件中,然后多点击几次看看效果。
基本上我是使用包含在类里面的全局变量来用的。没有碰到过会引起共享冲突的情况。
局部变量在本过程 procedure
program Project1;
{$APPTYPE CONSOLE}
t y p e
TStudent = class // 学生类
Name: string; // 学生姓名
class procedure AddOne; // 学生数增加一个
destructor Destroy;override; // 学生数减少一个
e n d ;
v a r
S t u d e n t N u m : I n t e g e r ; // 表示当前的学生数
S1,S2: TStudent; // 声明学生类的变量
{ TStudent }
class procedure TStudent.AddOne;
b e g i n
S t u d e n t N u m : = S t u d e n t N u m + 1 ;
e n d ;
destructor TStudent.Destroy;
b e g i n
S t u d e n t N u m : = S t u d e n t N u m - 1 ;
inherited Destroy;
e n d ;
b e g i n
S 1 : = T S t u d e n t . C r e a t e ;
S 1 . A d d O n e ; // 调用类方法改变变量S t u d e n t N u m
S 1 . N a m e : = '王松' ;
Wr i t e l n ( '学生数为:' , S t u d e n t N u m ) ;
S 2 : = T S t u d e n t . C r e a t e ;
S 2 . A d d O n e ;
S 2 . N a m e : = '高大威' ;
Wr i t e l n ( '学生数为:' , S t u d e n t N u m ) ;
S 1 . F r e e ;
S 2 . F r e e ;
Wr i t e l n ( '学生数为:' , S t u d e n t N u m ) ;
R e a d l n ;
e n d .
此处的StudentNum就是当作静态变量用的。
Delphi好像没有提供类变量,只有类方法。