クラス変数

最近のDelphiではクラス変数が使えます。
Delphi 7以降の言語およびコンパイラの新機能
Delphi2009で試した。

program test;

{$APPTYPE CONSOLE}

type
  TMyClass = class
  public
    procedure Say;
    class var
      Message: String;
  end;

var
  instance: TMyClass;

procedure TMyClass.Say;
begin
  WriteLn(TMyClass.Message);
end;

begin
  instance := TMyClass.Create;
  try
    TMyClass.Message := 'foo';
    instance.Say;
    TMyClass.Message := 'Hello!';
    instance.Say;
  finally
    instance.Free
  end;
end.

実行結果

foo
Hello!