How to declare static variables in Delphi 2009?

17,180
type
  TMyClass = class(TObject)
  private
    class var FX: Integer;
  public
    class property X: Integer read FX write FX;
  end;

or shorter if you don't use a property

type
  TMyClass = class(TObject)
  public
    class var X: Integer;
  end;

edit: Note the class in class var. You forgot that part.

Share:
17,180
P. Duw
Author by

P. Duw

Updated on June 04, 2022

Comments

  • P. Duw
    P. Duw almost 2 years

    I googled,I binged,I already have seen the other "duplicates" here,but none of them work in Delphi 2009 updated up to update 4.

    Like in C#,I want to make a static variable in on line or as short as possible.In the end it works like a global variable,but its sorted.

    What's the shortest way to do this in delphi 2009?

    EDIT

    I followed some of your answers,but it doesn't work.

    type:

    type
    TmyClass = class(TObject)
      var staticVar:integer;
    end;
    

    code:

    procedure TForm1.Button1Click(Sender: TObject);
    var a:integer;
    begin
      TMyClass.staticVar := 5; // Line 31
      a := TMyClass.staticVar; // Line 32
      MessageBox(0,IntToStr(a),'',0);
    end;
    

    I get the following errors:

    [DCC Error] Unit1.pas(31): E2096 Method identifier expected 
    
    [DCC Error] Unit1.pas(32): E2096 Method identifier expected