計算機語言一代一代地從機器語言發展到高級語言,從復雜到簡單(其實也不簡單),體現了計算機科學技術的發展。計算機語言越高級,就越抽象越人性化,與低層硬件的關系就越少,使用起來就越方便。但無論計算機語言如何高級,都是對操作系統層的抽象,因此我們總可以找出理解高級語言背後的規律,那就是:高級語言寫的代碼只是為了描述人們的需求,而這些代碼要通過“翻譯器”翻譯成機器語言形式才能被機算機識別執行。所謂的翻譯有兩種方式:一是編譯方式,代碼事先通過編譯器生成機器語言代碼,再由操作系統調度執行,如Delphi語言、C++語言等;二是解釋方式,該方式在計算內是邊解釋邊執行,並不事先生目標程序,如Basic語言、腳本語言等。解釋方式的特點運行速度慢,對計算機硬件要求比較高。
計算機語言定義描述人們需求的規則,在語言的背後是編譯器或解釋器。編譯器或解釋器的主要工作就是翻譯代碼,成為人與計算機交流的主要通道。這樣在操作系統不變的情況下,各種開發工具各顯神通,但最終都要生成計算機可執行的代碼。所以無論用哪種計算機語言寫的程序要判斷其好與壞很大程度上依賴於該語言的編譯器或解釋器。Delphi的編譯器仍然是目前世界上最先進最優秀效率最高的編譯器。
從高級語言的特點來看,它們基本上都是對操作系統提供的服務接口封裝,在此基礎上加入自己的語言特性,如OOP、指針、內存管理模式等。
從Delphi語言的整個架構來,我們寫程序要麼是直接使用VCL,要麼是調用操作系統提供的API,要麼是使用Com服務,又或是直接使用匯編語言完成我們的工作。
VCL Delphi最核心最偉大的就是可視化組件庫(VCL——Visual Component Library)和跨平台組件庫存(CLX——aComponent Library for Cross-Platform),類似於Microsoft MFC,但其架構比MFC至少要先進兩到三代。用Delphi編程你可以選擇VCL也可以不用VCL一切從頭開始。假設寫一個建窗口並顯示“Hello world”的程序,如果不用VCL,那麼你得從調用API的CreateWindow開始,這是一件多麼麻煩的事,不過這還得看你的要求。這裡只是說明用Delphi編程離開VCL並不是不行,如控制台程序。
VCL是一個功能強大的類庫,它是Delphi語言面向對象特性的精華與結晶,類圖結構如下:
這是一個縮略的類圖結構,但很具有代表性,從類圖中我們可以看出,VCL只有一個根——TObjct,它的每一個派生類只有一個祖先。這正是Delphi語言的面向對象的特點,所有類的最原始祖先是TObjcet,繼承方式是單一繼承。需要說明的是:
雖然VCL設計很經典也很龐大,但不要被這些所嚇倒。說白了他就是一個類庫,是很多有一定關系的類放在一起完成一定功能的類庫,而這些類要麼是封裝Windows的API,要麼是調用Windws的COM服務,又或是使用匯編直接操作內存。前面說過,我們寫程序可以用VCL也可以不用VCL,說明VCL並不是必須的。如果有必要,我們可以繼承擴展其中任何一個類使之成為符合自己要求的類。如我們要擴展TPanal類,使鼠標進入和離開時能觸發相應的事件(OnMouseEnter\OnMouseLeave),如QQ面板的功能。