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

如何學習副程式?

答題得分者是:RedSnow
wena
一般會員


發表:26
回覆:37
積分:12
註冊:2005-07-20

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-08-13 13:09:43 IP:218.160.xxx.xxx 未訂閱
我是BCB的初學者 最近想學學副程式的寫法 請問有沒有完整的文章或問題可以參考 謝謝幫忙
RedSnow
版主


發表:79
回覆:1322
積分:845
註冊:2003-12-15

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-08-13 18:19:41 IP:61.230.xxx.xxx 未訂閱
wena 您好:    我剛才上網找了一下,沒能找到 BCB 的相關文章可供您參考,但是有幾篇是以其它語言為例的文章,您可以參考一下文章裡有關的概念 副程式 (繁體中文,請看該篇標題為 "簡單的副程式" 的那一段) http://www.cyut.edu.tw/~ckhung/b/pl/subroutine.shtml 欣賞優美的代碼:實際的例子 (簡體中文) http://www.yesky.com/260/1921760.shtml 另外就 "BCB 的副程式該如何撰寫" 的部份,這不是三言兩語講得清楚的,簡單的說可以將您自己程式中有多處反覆使用到的程式敘述整理一下,然後參考既有函式的宣告方式來宣告與設置,如果該段副程式需要有傳回值,那麼就在自定函式的宣告時,設定傳回值的資料類型,例如: 要傳回字串資料時:
AnsiString MyFunc(....)
{
    AnsiString rc;
    .... 處理程序 ....
    return rc;
}
以上函式會在處理過後,將處理過後的字串變數 rc 值回傳,如果函式要處理及回傳的是整數的數值資料,那麼就將 AnsiString 改為 int,其它類型的資料可依此類推。 如果要處理的程序無需傳回任何資料,那麼就將上述的類型宣告處改為 void 即可,同時函式內也無需加上 return ... 的敘述,例如:
void MyProc(....)
{
    .... 處理程序 ....
}
回傳的部份大致就是這樣子,接著講一下傳入的部份,有時候我們在呼叫自定函式時,需要傳入一些資料給函式來處理,那麼我們就在函式名稱的後方括號內加上參數的宣告,例如:
AnsiString MyFunc(AnsiString mStr, int nn)
{
    AnsiString rc;
    .... 處理程序 ....
    return rc;
}
上述函式有兩個傳入的參數,第一個是名為 mStr 的字串資料,第二個是名為 nn 的整數數值,參數多寡與類型可視需要自行增減,如果不需要傳入參數,那麼括號內可以空著或者是設定為 void 即可。 另外諸如傳址還是傳值也應視需要加以設定 (呼叫方式也會稍有不同),宣告位置也視函式的作用範圍而有所不同,或許您對有些函式中含有 __fastcall__stdcall 這樣的宣告字句有所疑問,又或者您對是否要加上 TForm1::MyFunc() 這樣的宣告也不清楚,但誠如我一開始所寫的,這不是三言兩語講得清楚的,因此這些部份我不寫了,您可以查看一下 BCB 的 Help 中對於那些關鍵字的解說,或者搜尋一下站上的討論資料,再不行的話也可以另外開題求教於各路先進。 如果您需要詳細的解說資料,我建議您還是到書店去逛一逛,或許能找到比較符合您所需的參考與學習資料,花點時間消化一下書中所述,再實際試著自己寫寫看,碰到問題再繼續翻閱參考書籍,書上沒提到的再到網路上來請教各路先進,發問題針對單一狀況詳細描述問題 (例如:xx 類型的自定函式應宣告於何處、自定函式內要如何回傳陣列值....等等),然後自己依據他人的回覆,舉一反三的去試試不同型態資料的處理與回傳,碰到問題再繼續發問....,相信不需要多久,您就能掌握住撰寫副程式 (自定函式) 的要領了。 7 天天敲鍵盤 v 時時按滑鼠 8
wena
一般會員


發表:26
回覆:37
積分:12
註冊:2005-07-20

發送簡訊給我
#3 引用回覆 回覆 發表時間:2005-08-13 20:48:56 IP:218.162.xxx.xxx 未訂閱
謝謝幫忙 我會加油的!
系統時間:2024-05-18 4:28:13
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!