2009-07-08 19 views
6

Je googlé, je Binged, je l'ai déjà vu les autres « doublons » ici, mais aucun d'entre eux travaillent en Delphi 2009 mis à jour à jour 4.Comment déclarer des variables statiques dans Delphi 2009?

Comme en C#, je veux faire une variable statique sur En fin de compte cela fonctionne comme une variable globale, mais son triée.

Quel est le moyen le plus court de le faire dans Delphi 2009?

EDIT

J'ai suivi certaines de vos réponses, mais il ne fonctionne pas.

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; 

Je reçois les erreurs suivantes:

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

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

"... mais son trié" - qu'est-ce que cela veut dire? – jpfollenius

+0

Et sur quel niveau de portée voulez-vous déclarer votre variable statique? Niveau de la fonction? Niveau de la classe? Niveau de l'unité? – jpfollenius

+0

http://edn.embarcadero.com/article/34324 .Ceci est ce que je veux.Regardez l'exemple des méthodes statiques. "TMyClass.X: = 17" est ce que je veux utiliser sans avoir besoin de créer une instance Cependant, cela ne fonctionne pas pour moi dans Delphi 2009. J'obtiens des erreurs de syntaxe –

Répondre

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

ou moins si vous n'utilisez pas une propriété

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

modifier: Notez que la classe en classe var. Vous avez oublié cette partie.

+0

J'ai édité ma question pour que vous puissiez voir mon code. J'obtiens une erreur quand vous utilisez votre code. –

+0

J'ai oublié "classe" .Maintenant cela fonctionne parfait! –

+0

Vous pouvez également spécifier une valeur par défaut pour la propriété. – skamradt

Questions connexes