線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:1602
推到 Plurk!
推到 Facebook!

Delphi 上有像 C++ 的 Static variable 嗎?

尚未結案
Diviner
初階會員


發表:36
回覆:112
積分:34
註冊:2002-03-13

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-03-12 12:10:00 IP:218.103.xxx.xxx 未訂閱
我想每個相同的 Class (包括其 Sub-class) 建立出來的 Instance 都可以參考同一個 property, Delphi 中能否做到這功能? 若有的話, 是如何寫呢? 1) Declare 寫法; 2) 若這 property 是一個 Object, 在哪兒 Create/Free 呢? 3) 參考它的 Syntax 又如何寫? 謝謝。 -- 小卜子
------
--
小卜子
william
版主


發表:66
回覆:2535
積分:3048
註冊:2002-07-11

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-03-12 12:13:01 IP:147.8.xxx.xxx 未訂閱
Global variable?
Diviner
初階會員


發表:36
回覆:112
積分:34
註冊:2002-03-13

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-03-12 15:14:13 IP:218.103.xxx.xxx 未訂閱
引言: Global variable?
可以說是吧, 但並不 Global 於整個 Application, 而只是同 Class 的 Instances 去 Share 使用而已, 一如 C 的 Static variable。 -- 小卜子
------
--
小卜子
william
版主


發表:66
回覆:2535
積分:3048
註冊:2002-07-11

發送簡訊給我
#4 引用回覆 回覆 發表時間:2004-03-12 15:39:40 IP:147.8.xxx.xxx 未訂閱
I don't think there is any equivalent in Delphi. Perhaps you could make use of unit global variable? e.g.
TMyClass = class
    {...}
    property MyVar: integer read GetVar write SetVar;
    {...}
end;    implementation    var
   AVar: integer;
{..}
procedure TMyClass.GetVar: integer;
begin
    Result := AVar;
end;    procedure TMyClass.SetVar(Value: integer);
begin
    AVar := Value;
end;
Of course the above simple example is NOT thread safe
ecafe
一般會員


發表:0
回覆:8
積分:11
註冊:2002-07-21

發送簡訊給我
#5 引用回覆 回覆 發表時間:2004-03-12 17:46:54 IP:61.222.xxx.xxx 未訂閱
Delphi目前尚未支援靜態的類別變數或屬性。
thomas0728
中階會員


發表:112
回覆:260
積分:89
註冊:2002-03-12

發送簡訊給我
#6 引用回覆 回覆 發表時間:2004-03-12 20:50:04 IP:61.219.xxx.xxx 未訂閱
TMyClass = class {...} property MyVar: integer read GetVar write SetVar; {...} end; implementation {..} CONSTRUCTOR TMyClass.CREATE; {$J } CONST AVar=10; {$J-} BEGIN INHERITED; ...... END; procedure TMyClass.GetVar: integer; begin Result := AVar; end; procedure TMyClass.SetVar(Value: integer); begin AVar := Value; end; 加上編釋指引就可以有靜態的類別變數或屬性了。 如果愛情也有味覺 那麼 有沒有ㄧ種愛 微微泛酸 不太苦澀 有點甜密 嚐起來的滋味讓人想起幸福 Thomas Chiou
------
Thomas Chiou
Diviner
初階會員


發表:36
回覆:112
積分:34
註冊:2002-03-13

發送簡訊給我
#7 引用回覆 回覆 發表時間:2004-03-19 02:06:44 IP:203.168.xxx.xxx 未訂閱
我建立了一個 Unit, 然後把需要只建一份的變數放在這 Unit 上, 可說是個全域變數, 然後自律一點去存取就是了。 謝謝各位。 -- 小卜子
------
--
小卜子
shrobert
一般會員


發表:0
回覆:5
積分:6
註冊:2002-06-03

發送簡訊給我
#8 引用回覆 回覆 發表時間:2004-03-19 10:01:25 IP:210.243.xxx.xxx 未訂閱
使用class function 去存取只宣告於可見度在該unit 中的變數或物件 .. type TMyObj = class class function GetX:integer; end; . implementation var X:integer; class function TMyObj.GetX:integer; begin result := X; end; initialization X := 3; finaliization end; Object Pascal 中並無class 變數,最新的版本我不知有無? 不知是否合乎要求
Diviner
初階會員


發表:36
回覆:112
積分:34
註冊:2002-03-13

發送簡訊給我
#9 引用回覆 回覆 發表時間:2004-03-25 23:03:28 IP:203.168.xxx.xxx 未訂閱
shrobert, 合用啊, 謝謝你。 民. -- 小卜子
------
--
小卜子
系統時間:2024-05-12 11:21:01
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!