2009-07-08 3 views
6

я гугле, я binged, я уже видел другие «дубликаты» здесь, но ни один из них не работает в Delphi 2009 обновляется до обновления 4.Как объявить статические переменные в Delphi 2009?

и как в C#, я хочу сделать статическую переменную на или как можно короче. В конце он работает как глобальная переменная, но ее сортировка.

Какой самый короткий способ сделать это в Delphi 2009?

EDIT

Я последовал за некоторые из ваших ответов, но он не работает.

Тип:

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

код:

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; 

я получаю следующие ошибки:

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

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

«... но его сортировка» - что это значит? – jpfollenius

+0

И на каком уровне видимости вы хотите объявить свою статическую переменную? Уровень функции? Уровень класса? Уровень единицы? – jpfollenius

+0

http://edn.embarcadero.com/article/34324. Вот что я хочу. Посмотрите на пример статических методов. «TMyClass.X: = 17» - это то, что я хочу использовать, без необходимости создавать экземпляр класса.Однако это не работает для меня в delphi 2009.I получить синтаксические ошибки –

ответ

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

или короче, если вы не используете свойство

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

редактировать: Обратите внимание на класс в классе вар. Вы забыли эту часть.

+0

Я отредактировал мой вопрос, чтобы вы могли видеть мой код. Я получаю сообщение об ошибке при использовании кода. –

+0

Я забыл «класс». Теперь он отлично работает! –

+0

Вы также можете указать значение по умолчанию для свойства. – skamradt

Смежные вопросы