我來發表几句﹕
定義一個工程(程序)中各窗體共用的變量有多種方法﹕
第一種方法﹕定義在類的外面(也就是不屬于任意一個類)﹐它的存
取范圍是從它的定義開始到程序結束﹐代碼如下﹕
注﹕從這個方法可以看出﹐窗體的全局變量(只有全局變量才能賦初
值)就是程序的全局變量﹐只不過它的存取范圍受它的定義點位置限制。
unit Unit1;
interface
uses
Windows, Messages, SysUtils, 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;
xx:String='aaa';
implementation
uses Unit2;
{$R *.DFM}
procedure TForm1.Button1Click(Sender: TObject);
begin
Form2.Show;
end;
end.unit Unit2;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs;
type
TForm2 = class(TForm)
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form2: TForm2;
implementation
uses Unit1;
{$R *.DFM}
procedure TForm2.FormCreate(Sender: TObject);
begin
caption:=xx;
end;
end.
第二種方法﹐也是最常用的方法。就是將公用變量定義在一個通用單元中﹐
在要使用的的單元中Uses這個單元就可以了。
第三種方法﹐頂樓已經說過了﹐也就是定義一個窗體的公用變量(在Public域中)﹐
這要可以達到公用的目的﹐不過引用時要加窗口類變量前綴。
第四種辦法﹕在特殊的情況下﹐可以使用函數參數傳遞的方法﹐使不同的單元共亨
一個變量﹐就是在函數的參數前加Var關鍵字﹐表示參數為地址引用。
順便評一句﹕
在C++中變量的定義十分隨便﹐變量定義隨處丟下就是(夸張了一點)﹐
而且可以在定義時賦初值(不管是局部變量還是全局變量)﹔
而在Delphi變量的定義嚴格地由關鍵字Var引出﹐沒有Var的地方就不能定義變量﹐
不過Delphi這樣規范對我們編程有好處。