使用另一個Unit上的元件問題 |
答題得分者是:ccchen
|
cyl
中階會員 發表:163 回覆:171 積分:66 註冊:2002-07-11 發送簡訊給我 |
|
ccchen
版主 發表:61 回覆:940 積分:1394 註冊:2002-04-15 發送簡訊給我 |
|
cyl
中階會員 發表:163 回覆:171 積分:66 註冊:2002-07-11 發送簡訊給我 |
|
SKYSTAR
中階會員 發表:76 回覆:198 積分:64 註冊:2002-06-10 發送簡訊給我 |
引言: 那要使用forma的元件,是否use,後直接使用如froma.button1.enable:=true; 因為我看過一些程式的寫作事項,有說不要直接使用物件的名稱,因為這樣直接使用如果button的名字一修改,要改的程式碼會很多,請問要如何間接使用到物件呢??請利用程序或函數的方式來做.... 如: 在DM中去執行forma.SetBtnEnable的程序...這一個程序中才是撰寫物件名稱的地方....如: procedure Tforma.SetBtnEnable; begin Button1.Enable := True; end;如此一來...當物件改成別的東東或名稱改變時,只要改這一個程序中的東東,就 不必去更動到其它有使用到這個設定動作的單元了.... 簡單說,就是想要參考到其它單元中的物件,並想要讀取或設定該物件時,就應 使用程序或函數來取代直接使用物件的方式....這也就是所謂的...'包裝' 的觀念...(資訊隱藏)...!! 如有說錯...還煩請大大們指正!! |
ccchen
版主 發表:61 回覆:940 積分:1394 註冊:2002-04-15 發送簡訊給我 |
是否use,後直接使用如froma.button1.enable:=true;
須確定Forma是否已Create 不要直接使用物件的名稱,因為這樣直接使用如果button的名字一修改,要改的程式碼會很多
可以如SKYSTAR所說加以包裝, 更完整的包裝是全部做成property, 例如
property Button: TButton read GetButton write SetButton;
再寫function GetButton, procedure SetButton,如此將來只要property Button不變, 裡面GetButton, SetButton如何變都不會有大影響 個人以為, 如果你是在做library, 或公用程式, 如此做較好, 否則實在不需要這麼麻煩.
|
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |