為何加上var 後Complie時會出現 Type of actual and formal var parameters must be identical |
答題得分者是:deity
|
danielx2000
一般會員 發表:29 回覆:33 積分:22 註冊:2002-09-02 發送簡訊給我 |
[code delphi] 宣告區 function ReleaseForm( var frm: TForm): boolean; implementation function ReleaseForm( var frm: TForm): boolean; begin if Assigned(frm) then begin frm.Release; frm := nil; end; end; procedure TForm1.Button4Click(Sender: TObject); begin Application.CreateForm(TForm2,Form2); Form2.Show; ReleaseForm( Form2 ); if Form2<> nil then ShowMessage('Form2 free Error'); end; [/code] 加上var後出現的錯誤訊息Type of actual and formal var parameters must be identical 我看不出來是哪裡型態不一致 請各位幫我解惑 Thanks |
P.D.
版主 發表:603 回覆:4038 積分:3874 註冊:2006-10-31 發送簡訊給我 |
|
danielx2000
一般會員 發表:29 回覆:33 積分:22 註冊:2002-09-02 發送簡訊給我 |
|
deity
尊榮會員 發表:90 回覆:876 積分:678 註冊:2003-05-09 發送簡訊給我 |
function ReleaseForm( var frm: TForm): boolean;
implementation function ReleaseForm( var frm: TForm): boolean; begin if Assigned(frm) then begin frm.Release; frm := nil; end; end; procedure TForm1.Button4Click(Sender: TObject); var form2:TForm; Application.CreateForm(TForm2,Form2); Form2.Show; ReleaseForm( Form2 ); if Form2<> nil then ShowMessage('Form2 free Error'); end; 一个是TForm、一个是TForm2,所以会报错 ================================================
通过引用将变量传递给过程和函数利用引用传递参数时,其接收变量的过程和函数能够改变变量的值。var的作用是赋值变量的地址,变量的值也就根着改变。
編輯記錄
deity 重新編輯於 2010-12-29 07:47:07, 註解 無‧
|
danielx2000
一般會員 發表:29 回覆:33 積分:22 註冊:2002-09-02 發送簡訊給我 |
[code delphi] var Form1: TForm1; implementation uses Unit2; function ReleaseForm( var frm: TForm): boolean; begin if Assigned(frm) then begin frm.Release; frm := nil; end; end; procedure TForm1.Button4Click(Sender: TObject); begin Application.CreateForm(TForm2,Form2); Form2.Show; ReleaseForm( TForm(Form2) ); //<---改成這樣就OK了 if Form2<> nil then ShowMessage('Form2 free Error'); end; [/code]
編輯記錄
danielx2000 重新編輯於 2010-12-30 02:51:19, 註解 無‧
|
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |