請問關於default value 的用法跟問題? |
答題得分者是:william
|
SamSam1230
中階會員 發表:128 回覆:178 積分:65 註冊:2004-12-23 發送簡訊給我 |
以下我的code property OnColor : TColor read FOnColor write FOnColor default clGreen;
property OffColor: TColor read FOffColor write FOffColor default clRed; 但是出來的在object inspector 還是沒有改變, 我也試過在 constructor create 的時候assign 也是一樣, 不知道那裡出問題? 我每做一次變更就會在 package 那個windows complie 一次, 這樣應該就會在 test 的 form 裡的原件update 了, 是嗎? 謝謝
|
SamSam1230
中階會員 發表:128 回覆:178 積分:65 註冊:2004-12-23 發送簡訊給我 |
|
william
版主 發表:66 回覆:2535 積分:3048 註冊:2002-07-11 發送簡訊給我 |
|
Wesly
中階會員 發表:14 回覆:103 積分:53 註冊:2002-05-31 發送簡訊給我 |
|
syntax
尊榮會員 發表:26 回覆:1139 積分:1258 註冊:2002-04-23 發送簡訊給我 |
引言: 以下我的code property OnColor : TColor read FOnColor write FOnColor default clGreen; property OffColor: TColor read FOffColor write FOffColor default clRed; 但是出來的在object inspector 還是沒有改變, 我也試過在 constructor create 的時候assign 也是一樣, 不知道那裡出問題? 我每做一次變更就會在 package 那個windows complie 一次, 這樣應該就會在 test 的 form 裡的原件update 了, 是嗎? 謝謝所有的數值都會由 Deplhi 初始化為 Lowest Value 所以 TColor 是會被初始會為 0 就是 Black 如果妳要自己設定初值,必須自己加程式碼在 create 或是 afterconstruction 至於 default 的意思是指,所有的 property 值都會儲存在 *.dfm 上,妳可以自己來看 而當妳設定的數值跟(default xxxxx)那個 xxxxx 不同時,數值才會儲存到 dfm 內,如果相同時,就不會儲存,此時 deplhi 在 dfm 內找不到,表示值跟 default 指定的一樣,將會該數值來設定 不過要注意,程式初始化後,初值仍然是 clBlack,在讀入元件資料流後,才會真正設成 妳設定值,當設計元件時,若是亦開始,也就是在元件資料流讀入前,就會應用到,那要小心所造成的影響,可能不是妳所希望的 |
te_hsun
一般會員 發表:43 回覆:34 積分:20 註冊:2002-03-25 發送簡訊給我 |
在Create時要加入這幾行...
... property OnColor : TColor read FOnColor write FOnColor default clGreen; property OffColor: TColor read FOffColor write FOffColor default clRed; ... constructor TLightBulb.Create(AOwner: TComponent); begin inherited Create(AOwner); ... FOnColor:= clGreen; FOffColor:= clRed; ... end; 或者這樣是最好的... ... private ... procedure SetOnColor(Value: TColor); procedure SetOffColor(Value: TColor); ... published ... property OnColor : TColor read FOnColor write SetOnColor default clGreen; property OffColor: TColor read FOffColor write SetOffColor default clRed; ... end; ... constructor TLightBulb.Create(AOwner: TComponent); begin inherited Create(AOwner); ... FOnColor:= clGreen; FOffColor:= clRed; ... end; procedure TLightBulb.SetOnColor(Value: TColor); begin if FOnColor<>Value then begin FOnColor:= Value; Invalidate; end; end; procedure TLightBulb.SetOffColor(Value: TColor); begin if FOffColor<>Value then begin FOffColor:= Value; Invalidate; end; end; |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |