2009-07-08 30 views
6

Tôi googled, tôi binged, tôi đã thấy khác "trùng lặp" ở đây, nhưng không ai trong số họ làm việc trong Delphi 2009 cập nhật lên để cập nhật 4.Làm thế nào để khai báo các biến tĩnh trong Delphi 2009?

Giống như trong C#, tôi muốn tạo một biến tĩnh ở trên dòng hoặc càng ngắn càng tốt. Cuối cùng nó hoạt động như một biến toàn cầu, nhưng nó được sắp xếp.

Cách ngắn nhất để thực hiện điều này trong delphi 2009 là gì?

EDIT

Tôi đi theo một số câu trả lời của bạn, nhưng nó không hoạt động.

loại:

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

mã:

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; 

tôi nhận được các lỗi sau đây:

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

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

"... nhưng được sắp xếp" - nghĩa là gì? – jpfollenius

+0

Và mức độ phạm vi nào bạn muốn khai báo biến tĩnh của mình? Cấp chức năng? Cấp lớp? Đơn vị cấp? – jpfollenius

+0

http://edn.embarcadero.com/article/34324 .Đây là những gì tôi muốn. Xem ví dụ về phương thức tĩnh. "TMyClass.X: = 17" là những gì tôi muốn sử dụng mà không cần tạo một cá thể của class.However, nó không làm việc cho tôi trong delphi 2009. Tôi nhận được lỗi cú pháp –

Trả lời

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

hoặc ngắn hơn nếu bạn không sử dụng một tài sản

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

chỉnh sửa: Lưu ý lớp trong lớp var. Bạn quên phần đó.

+0

Tôi đã chỉnh sửa câu hỏi của mình để bạn có thể thấy mã của mình.Tôi gặp lỗi khi uing mã của bạn. –

+0

Tôi quên "lớp học" .Làm thế nào nó hoạt động hoàn hảo! –

+0

Bạn cũng có thể chỉ định giá trị mặc định cho thuộc tính. – skamradt

Các vấn đề liên quan