Global グローバル変数

VBでの Public や Global は Delphi ではユニットの Interface部 var で宣言する方法 (ユニットの変数として宣言) と、 クラスの public で宣言 (クラスの変数として宣言) するふたつの方法があります。
クラスの変数として宣言した場合、そのクラスのインスタンス、つまりオブジェクトが複数生成された場合に、その数だけ変数の領域が確保されます。ユニットの変数とした場合、その変数はプログラム中で必ず一つしか存在しません。

■ グローバル変数の宣言例
unit Unit2;

interface

type
  TTestClass  = class(TObject)                  
  private
    { Private 宣言 }
  public
    { Public 宣言 }
    //クラスの変数として宣言
    ClassVar : string;
  end;

var
  //ユニットの変数として宣言
  UnitVar : string;

implementation

end.

上記のユニット、クラスを他のユニットから参照した例が以下のサンプルです。

■ 使用例
implementation

{$R *.DFM}

uses
  Unit2;

procedure TForm1.Button1Click(Sender: TObject);   
var
  A, B, C : TTestClass;
begin
  A :=  TTestClass.Create;
  B :=  TTestClass.Create;
  C :=  TTestClass.Create;

  //各クラスの変数へアクセス
  A.ClassVar  :=  'Object A Variable';
  B.ClassVar  :=  'Object B Variable';
  C.ClassVar  :=  'Object C Variable';

  //Unit2の変数へアクセス
  //これは Unit2.UnitVar と記述してもよい
  UnitVar     :=  'Unit Variable';

  A.Free;
  B.Free;
  C.Free;
end;

クラスに変数を宣言する場合は直接変数を公開するよりもソレをプロパティとして公開した方が柔軟で、よりオブジェクト指向的です。

■ プロパティとして公開した例
type
  TTestClass  = class(TObject)
  private
    { Private 宣言 }
    FClassVar: string;
  public
    { Public 宣言 }
    //プロパティとして宣言
    property  ClassVar  : string    read FClassVar   write FClassVar; 
  end;


関連項目
Const 定数定義
Dim 変数定義