全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:1416
推到 Plurk!
推到 Facebook!

區域參數的初始值真的沒辦法定義在宣告的地方嗎??

尚未結案
ivankuo
中階會員


發表:132
回覆:272
積分:95
註冊:2002-11-21

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-02-20 16:50:38 IP:61.221.xxx.xxx 未訂閱
小弟是用D7的,看書所提到參數初始值只能在interface區和implementation區設定,其他區域參數或在private或public都不能設定初始值,我有測試過確實不行,這樣的話很必須在使用此變數之前在多寫一行來給初始值,雖然大部分的變數預設初始值都為(string='')或是(integer=0)或(boolean=false),但是也有些是例外的,delphi能保證初始值是真的是如此嗎??若是可以下初始值就方便多了。 procedure TForm1.Label1Click(Sender: TObject); var s:string='abc'; i:integer=123; CHK:boolean=false; begin ... end;
------
ivankuo
a6475
高階會員


發表:67
回覆:230
積分:154
註冊:2002-09-15

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-02-21 17:41:30 IP:211.76.xxx.xxx 未訂閱
應該是不行的。不過有幾種方法。     
 
//1.在begin初始化
procedure test();
  var i : integer;
begin
  i := 0;
  ...
end;    //2.用const,但是i就不能改變了
procedure test();
  const i : integer = 0;
begin
  ...
end;    //3.用const 和j 編譯,這樣i可以改變,但是變數保存的值會一直存在,要注意!
procedure test();
{$j }  const i : integer = 0; {$j-}
begin
  inc(i);
  showmessage(intToStr(i));
end;    procedure TForm1.Button1Click(Sender: TObject);
begin
  test();//第一次呼叫,會是0
  test();//第二次會是1
end;    
..-----------βλμε------------..
◎Oo月夜 光明 藍更愁oO◎
藍調月光城v4:http://inping.myweb.hinet.net/ (暫時使用中..) 明日報(藍調.月光):http://mypaper2.ttimes.com.tw/user/a6475
------
月夜 光明 藍更愁
ivankuo
中階會員


發表:132
回覆:272
積分:95
註冊:2002-11-21

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-02-23 09:14:15 IP:61.221.xxx.xxx 未訂閱
喔~~那另一個問題,宣告變數預設初始值都為(string='')或是(integer=0)或(boolean=false),delphi能保證初始值是真的是如此嗎??
------
ivankuo
系統時間:2024-05-03 3:29:00
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!