啦!同一個單元同一個範圍 發生這樣事也是不許的,各 Overloading 的函式,在函式宣告上多少總有些不同。
Default Parameters
過去,函式如果定義了六個參數,那麼,寫作函式呼叫的原始碼時,就一定得乖乖地傳入 六個參數,不許多也不許少。若是應用「Default Parameters」,可以只傳入五個(或者更 少)。那...,那其他沒給的參數怎麼辦?沒關係,函式內部的程式將自動以預設值代 入,稍後我會說明其寫法。 2 舉例來說,Windows API 中有一個蠻好用的函數叫 MessageBox ,呼叫此函數將出現一通 用對話盒,不管是顯示訊息或者徵詢使用者意見,都十分好用。像是以下這道敘述將產生 如次頁的對話盒,提醒使用者定期備份資料:
Application.MessageBox('程式要結束了喔! 請記得定期備份資料', '訊息', MB_OK + MB_ICONINFORMATION);
2
TApplication 也有一個 MessageBox 方法幫我們包裝該函數的使用,省去了 Windows
Handle 參數。
690
附錄 E
Delphi 4 增訂的 Object Pascal
除了顯示資料,經由最後一個參數,彈性地搭配各位元旗標,就可以製作出不同按鈕的對 話盒,詢問使用
者「是」、「否」、「取消」等簡單的問題。 應用 Default Parameters 的寫法,我們可以寫一個類似以下的函數:
#0001 #0002 #0003 #0004 #0005 #0006 #0007 #0008 #0009 #0010 #0011 #0012 function MyMessageBox(Prompt: string; Caption: string = '訊息 訊息'; 訊息 Flag: LongInt = MB_OK + MB_ICONINFORMATION): integer; begin Result := Application.MessageBox( PChar(Prompt), PChar(Caption), Flag); end; procedure TForm1.Button1Click(Sender: TObject); begin MyMessageBox('程式要結束了喔! 請記得定期備份資料'); end;
如此一來,我們既能有一個完整支援 Mes