注册 登录
编程论坛 Delphi论坛

如何给一个全局变量赋值

qpfmates 发布于 2008-11-12 09:00, 5688 次点击
如何给一个全局变量赋值
7 回复
#2
ruanjian21102008-11-13 14:18
跟一般的变量赋值是一样的!
#3
qpfmates2008-11-13 17:14
能不能说的详细点?在哪个部分写代码?
#4
ruanjian21102008-11-13 17:33
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm1 = class(TForm)
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
  i:integer;  //在此处定义全局变量
#5
gdzhan2008-11-15 23:06
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm1 = class(TForm)
    Button1: TButton;
    Button2: TButton;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
  /////////////////////////////
  //在 implementation上定义的全局变量在所有单元可见
  var teststr:string;

implementation

{$R *.dfm}

//////////////////////////////
//在implementation下定义的只对本单元可见
var teststr1:string;

procedure TForm1.Button1Click(Sender: TObject);
begin
  //////////////////////
  //对teststr赋值
  teststr := '我是对所有单元都可见的';
  showmessage(teststr);
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
  /////////////////////
  //对teststr11赋值
  teststr1 := '我只对本单元可见';
  showmessage(teststr1);
end;

end.
#6
qpfmates2008-11-16 08:52
gdzhan的方法我理解了,谢谢啊!ruanjian2003,我是问在哪里赋值,不是定义变量,呵呵
#7
qpfmates2008-11-16 08:52
哦,no,是ruanjian2110
#8
永夜的极光2008-11-16 20:12
全局变量还有一个特别的地方可以赋值,一般用于初始化

以下引自我的百度空间:

9. 全局变量的初始化

在最后结束的end.之前,增加initialization关键字,然后加入对全局变量的初始化,这样就可以初始化全局变量了.不论在interface还是在implementation部分的全部变量,都可以这么用

//省略前面的interface, uses, type.

var
i: Integer;

implementation

var
j: Integer;

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
Inc(i);
Inc(j);
Form1.Caption := IntToStr(i) + ' ' + IntToStr(j);
end;

initialization
i := 100;
j := 200;

end.
1