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

Pass By Value? Pass By Reference?

答題得分者是:change.jian
BorlandUser
中階會員


發表:148
回覆:217
積分:73
註冊:2004-02-19

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-09-02 11:19:24 IP:203.185.xxx.xxx 未訂閱
1. 如果我有個變數(eg. var a: integer), 我想做到如果我pass這個變數a到別的function abc 或procedure abc 後,在那個abc內改變其var a的數值,如果我這樣寫: Procedure AAA(); Var a: Integer; Begin a := 1; ChangeValue(a); ShowMessage(IntToStr(a)); <-------- value is 1 End; Procedure ABC(a: Integer); Begin a := a 1; End; 請問應該點做呢? 還有一個小問題,如果 procedure abc所接的不是integer,而是tedit,當我pass一個editbox入去時,它就能改變數值,請問何解呢?
change.jian
版主


發表:29
回覆:620
積分:439
註冊:2003-06-02

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-09-02 11:39:20 IP:61.218.xxx.xxx 未訂閱
Hi,BorlandUser: 1.function abc的參數宣告如下即可  
 function (var a:Integer) 
變數前面加var,代表你所謂的pass by reference,不加var,即 by value 2.如果傳入的是TEdit等,那麼加不加var都一樣.原因是VCL自TComponent以下,實際上都上指標.如下:
procedure CheckEditValue(Edit:TEdit);
begin
  Edit.Text:='ABC' Edit.Text;
end;
系統時間:2024-06-24 20:14:43
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!