程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> Delphi >> Delphi面向對象編程的20條規則(6)

Delphi面向對象編程的20條規則(6)

編輯:Delphi

上面的代碼是Tcomponent類的SetReference方法,這個方法可以被InserComponent,RemoveComponent和SetName等方法調用。

當你理解了這一點後,你應該不難想到如果你將組件參照從published部分移到了private段,你將失去VCL的自動關聯功能。為了解決這個問題,你可以通過在窗體的OnCreate事件中添加如下代碼解決:

Edit1:=FindComponent(‘Edit1’) as Tedit;

你接下來應該做的就是在系統中注冊這些組件類,當你為他們注冊過後就能使RTTI包含在編譯程序中並且能夠被系統所使用。當你將這些類型的組件參照移到private部分時,對於每一個組件類,你只需為他們注冊一次。即使為他們注冊不是一定必要的時候,你也可以這樣做,因為對於RegisterClasses的額外調用有益無害。通常你應該在單元中負責生成窗體的初始化部分添加以下的代碼:

RegisterClass([TEdit]);

規則15:面向對象編程的窗體向導(The OOP Form Wizard)

為每一個窗體的每一個組件重復上述兩個操作不僅十分的煩人,而且相當的浪費時間。為了避免額外的負擔,我已經為此寫了一個簡單的向導程序。這個程序將會生成一些可以完成以上兩步工作的代碼,你需要做的僅僅是做幾次復制和粘貼就行了。

遺憾的是這個向導程序不能自動將代碼放置到單元中合適的地方,我目前正在修改這個向導程序,希望能實現這個功能。你可以到我的網站(www.marcocantu.com)查找更加完善的程序。

規則16:可視化窗體繼承(Visual Form Inheritance)

如果應用得當,這將是一個強大的工具。根據我的經驗,你所開發的項目越大,越能體現它的價值。在一個復雜的程序中,你可以使用窗體的不同等級關系來處理一組相關窗體的多態性(polymorphism)。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved