"一個優秀的Delphi程序員,不僅要會使用控件,還要會寫控件."(向玉笛書生致敬)
我還是一個半瓢水的程序員,因此目前為止我所能努力達到的境界是:
一個半瓢水的程序員,管他會不會寫控件,只要能拿來改就可以了.
使用過Delphi的朋友都知道,我們在設計Delphi應用程序的某一功能時總是希望能夠有現成的第三方免費控件可以拿來使用.但實際情況往往是,網上的控件確實種類繁多,優秀作品也數不勝數,但真正完全能夠符合設計者具體要求的控件卻很少.究其原因,不外乎以下幾條
1.國人開發的應用程序大多具有中國特色,而優秀的第三方控件往往是國外程序開發人員開發的(大名鼎鼎的Rxlib,知道吧,俄羅斯人的作品).功能定義上的差別導致了控件的不可用性,看看QuickReport就知道了(當然,QuickReport編的也很爛).
2.真正優秀的第三方控件總是從大局上把握控件所能達到的功能,細節問題考慮的不多.而我們設計的程序通常要考慮到很多操作細節上的問題(一般是客戶的要求,有時會有些變態)
3.對於許多很有特色的控件,我們所需要的只是其中一部分功能,但是它被整合到了某一個大的方法中,無法為我們所用.
4.優秀和免費總是兩個矛盾,天下沒有免費的午餐.
種種原因,限制了開發者對控件資源的充分利用.其實,很多控件的代碼都提供了開放的接口.只要大家對控件的原理有一定的了解,然後對別人的控件代碼作一捏捏的修改,就可以無縫的添加自己需要的功能,或剔除冗余的功能.既達到了開發的目的,又避免了重寫代碼的麻煩,一舉兩得(好像很不負責任啊,沒辦法了,半瓢水嘛).關於控件的原理,應該有很多文章介紹過了,在這裡我想通過一個具體的實例來介紹一下怎樣將別人的控件"拿來"為我所用.