1. 淺談針對delphi面向對象的開發
Delphi 是完 全面向對 象的編程 環境。面 向對象程 序設計方 法 (Object-Oriented
Programming, OOP)比結構化方法(Structure Programming)能更自然地表現現實世界。如果說結構化程序設計是從系統的功能入手,按照工程的標准和嚴格的規范將系統分
解為若干功能模塊,系統是實現模塊功能的函數和過程的集合;那麼面向對象程序設計則 是從所要處理的數據入手,以數據為中心而不是以服務(功能)為中心來描述系統。它把編 程問題視為一個數據集合,數據相對於功能而言,具有更強的穩定性。面向對象設計同 結構化設計相比較最大的不同就是:前者關心的是要處理的數據,而後者則關心需實現的 功能。
面向對象的程序設計(Object Oriented Programming,OOP)指的是一種編程方法,或者
說是一種編程思想。OOP 有三大特點,即數據封裝、派生和多態。如果某種編程語言符合 這三種特性,就可以說它是支持 OOP 的。Visual C 是完全支持 OOP 的。Visual Basic 只支 持數據封裝,不支持派生和繼承,因此它不是完全的 OOP 語言。雖然 Visual Basic 號稱通 過多重 ActiveX 介面來支持多態,但大家都知道,它連派生都不支持,是不可能真正支持 多態的。所以 Visual Basic 被稱為「偽 OOP 語言」。很多人以為數據封裝就是 OOP,這是 不對的。數據封裝只是 OOP 的一個特性,一些非 OOP 語言也支持數據封裝。這一點非常 重要!
面向對象的設計方法是對現實世界客觀存在的事物的抽象的概括,人們所創造出的類
與對象都是某一實體的模型。舉例來說,某廠要生產一個 A 型燈泡,這一過程就需要有個 動作施加的對象——燈泡,這個燈泡有一些屬性:亮度、材料、重量等。它也可以有很多 的動作,無論是主動的還是被動的,燈泡可以亮滅,可以旋擰,甚至可以爆炸,這些都是 與它有關的動作。所以說「對象」一旦被確定下來,相應的「方法」也就可以總結出來。 於是人們就做出了一個生產 A 型燈泡的模型——類。再舉一個典型的例子,在輸入 DOS 刪除文件的命令的時候,通常在 DOS 操作符後輸入「delete c:\command.dat」,這時可能會 看到出現提示:file not found。這是因為動作所要施加的對象不存在。而面向對象設計方法 則在編譯的時候就解決了這個問題,而不會等到運行階段,用戶可以先知道對象是什麼, 然後去了解它有哪些動作。無論是書寫的對象還是調用的方法出錯,都會在編譯的時候報 錯,方便修改,而不是在執行的時候出錯。這就是面向對象的設計方法一個重要的特性
——封裝(Encapsulation)。 同時,面向對象又能解決代碼重用的問題——繼承(Inheritance)。再來看燈泡,如果還
想生產兼有 A 型燈泡的優點而又更加高級的燈泡怎麼辦?如果完全拋棄 A 型燈泡的模型重 新創造,那麼先前的所有工作都將被埋沒,這明顯是資源的浪費。因此,只需要「派生」 一個 B 型模型(派生類),在 A 型模型(基類)的基礎上,加上新的特性。那麼程序寫完了, 就可成功地重用了以前的代碼。Delphi 的 VCL 類庫給用戶提供了很多的基類。
繼續沿用燈泡的例子,假如要生產燈泡,可以表示為「燈泡.生產」。通過「生產」這
個唯一的命令(介面)員工就需要去製作 A 型或 B 型的燈泡,換句話說,通過調用一個介面 可以實現兩種不同的操作,那麼這就是多態性。多態是面向對象的靈魂所在,理解多態是 掌握面向對象技術的關鍵之一。在後面的章節中將詳細介紹多態性。
面向對象設計思想中還包含對消息機制的理解。我們把類之間的通信過程歸結為消息
的傳遞,理解了消息機制,將更加促進對類的實現及操作方式的掌握。
2. delphi與c語言比較有什麼特點
在Windows平台上說起實用來,當然還是Delphi更實用咯!
1.Delphi具有快速開發環境,其效率是VC的n倍(不要拿C#來說事,C#的開發領導者是Delphi的主創之一,這個層面上,C# = Delphi)
2.代碼質量:由於Delphi使用的是Object Pascal語言所以代碼嚴謹優美,可讀性強,利於團隊作業!C的代碼太自由,個人色彩濃烈,適合SOLO...對公司來講效率不高
3.編譯器效率:Delphi的編譯器效率目前還沒有敵手,編譯一個項目瞬間完成,其好處是沒有等待編譯的空閑時間去泡咖啡了,有益Coder的身心健康,同時也為項目的快速開發奠定了基礎
4.在Windows平台上,Delphi除了驅動程序不能開發外(事實上你願意的話也可以,只是你要冒微軟的版權風險),幾乎可以完成任何項目,尤其以資料庫程序見長。當然,Delphi在Linux等平台上的表現還不盡如人意,如果你是在Linux下的話,建議你還是用C吧!
其實VC也好Delphi也好,C語言也好Pascal語言也好,它們都只是工具,重要的是編程思想和工具的適用范圍。
要說的就差不多這么多了,希望大家不要帶有色眼鏡看待事物...
3. 初識編程,怎樣學習delphi
要學習Delphi,最主要的是了解它的控制項,了解它的開發模式。而比較困難的是如何去了解這么多的控制項,在我的Delphi里,已經有超過1萬個控制項,要把它們全部用一遍,那是不可能的,通常只是需要什麼用到什麼。好在Delphi的幫助文檔對控制項寫得比較詳細,你只要選中一個控制項,然後按下F1就行了。
看幫助文檔也需要有一定的技巧,比如說Windows API在Delphi的幫助文檔中是沒有的,需要額外下載MSDN,而Linux API在幫助文件中是包含的,所以就沒有必要再去網上找。如果你按下F1時,系統提示你沒有找到要找的內容,那麼你可以選擇轉向或是配置幫助文件。
例如:你查找IWButton,系統會提示你找不到相關項,此時會出現轉向,提示你轉向可能的詞條,你可以轉向IntraWeb詞條看看。如果IntraWeb詞條也沒有找到,你可以用Delphi幫助工具進行配置,找到IntraWeb的幫助文件,如IW6.hlp,然後把它添加到Delphi的幫助文件中。添加完畢後保存,然後再查找一次,就能夠找到了。
當然了,你也不能只是看幫助,要多動手做些實際的東西,還有就是面向對象的概念是非常重要的,雖說Delphi支持面向過程,但是大多數情況下,必須面向對象的進行開發。類似於class,interface之類的概念得完全掌握才行。對於一些外部程序的調用,還必須了解COM的有關知識。
還有一些概念上的問題,好多人以為Delphi不能開發網頁,這是一個錯誤的觀點,用Delphi一樣能開發出漂亮的網站來,其美觀程度和功能的強大完全不亞於用DreamWaver做出的網頁。而且最重要的就是它的開發速度很快。在你的主機空間充足,而又對開發時間有較大的限制,用Delphi是最好的選擇。用Delphi開發網站就和開發WinForm應用完全一樣,只是把開發模式轉為WebSnap,IntraWeb,ExpressWeb或是Delphi Script。
作為一名合格的Delphi程序員,你還必須了解匯編的有關知識,Delphi是開源的,但是其開源部分有一半以上是用匯編代碼寫的,如果你看不懂,那必然對開發造成一定的影響。假設你需要了解串口控制項的工作原理,以使對它進行改寫,但是那個控制項卻是用匯編寫的,這就對不懂匯編的開發人員造成了麻煩。當然我不是讓你把匯編學得多麼多麼好,你有學匯編的時間不如多學一下C,但是基本的概念,比如說寄存器,Invoke等,你必須知道。
最後說一下Delphi的前景。就說我看到的,Delphi程序員是非常搶手的,在大多數的軟體公司,都希望程序員能夠獨擋一面,獨立完成復雜的開發,所以會大量的招入Delphi程序員。在上海也發生過這樣的事,大量的C++,Java程序員被辭退,而招入少量的Delphi程序員,原因就是在同等技術水平下,一個Delphi程序員可以在一星期內完成5個Java程序員用一個月才能完成的工作。
在某些大型項目中,也需要開發人員之間的合作,但是Delphi程序員的合作默契程度遠遠比C++程序員來得高,如果你用合作模式開發一個項目,那麼就必須製作介面並發布,否則Delphi不允許合作項目的編譯,這樣使得各開發人員之間的代碼規范性非常強,並且能跟據項目計劃生成UML圖,極大的簡化了開發的過程。現在需要Delphi程序員的公司非常多。
所以Delphi在實際的開發中還是很有用的,但是你千萬不要在學習編程思想時用Delphi,那會對你很不利。永遠記住這一點,Delphi要多用才會熟練,當你能夠自己製作控制項時,才證明你的水平已經到達某個層次.
以上部份是抄了別人的。
關於看別人的源碼我覺的,在你沒有看夠足夠的書和做足夠的例子的時候,會讓自己迷惑不解!
如何看別人的源碼做自己的程序呢?
個人認為《Delphi面向對象編程思想》、《delphi精要》、《delphi 7組件經典解析》這幾本書要讀一下。
一、基本的控制項使用得懂。
二、基本的函數要了解一些,全記住是天才做的事,最起碼你要會查吧。
三、delphi是面向對象編程的,所以更得吃透這一方面。
餘下的事,就是你的理解能力的問題了。
4. Delphi編譯器採用的是什麼編程語言
Pascal語言 & Delphi
優點
(1)Pascal語言結構嚴謹,可以很好地培養一個人的編程思想。
(2)Delphi是一門真正的面向對象的開發工具,並且是完全的可視化。
(3)Delphi使用了真編譯,可以讓你的代碼編譯成為可執行的文件,而且編譯速度非常快。
(4)Delphi具有強大的資料庫開發能力,可以讓你輕松地開發資料庫。
缺點
Delphi幾乎可以說是完美的,只是Pascal語言的過於嚴謹讓人感覺有點煩。
Pascal語言簡介
Delphi這個名字源於古希臘的城市名。它集中了第三代語言的優點。以Object Pascal為基礎,擴充了面向對象的能力,並且完美地結合了可視化的開發手段。Delphi自1995年3 月一推出就受到了人們的關注,並在當年一舉奪得了多項大獎。
Delphi的出現打破了V承可視化編程領域一統天下的局面。並且Delphi使用了本地編譯器直接生成技術,使程序的執行性能遠遠高於其它產品生成的程序。它還是真正的面向對象的編程語言。PASCAL語言的嚴謹加上可視化的優勢和強大的資料庫功能使得它有充分的資本和微軟的VB叫板。許多人當時都認為Pascal 是最有前途的程序設計語言,並預測Delphi將會成為可視化編程的主流環境。
Delphi在你編好程序後自動轉換成.EXE文件它運行時速度比VB快,而且編譯後不需要其他的支持庫就能運行。它的資料庫功能也挺強的,是開發中型資料庫軟體理想的編程工具。 Delphi適用於應用軟體、資料庫系統、系統軟體等類型的開發。而且它擁有和VB差不多一樣的功能,而且一樣能應用API函數,這在控制Windows很有用。
Delphi是全新的可視化編程環境,為我們提供了一種方便、快捷的Windows應用程序開發工具。它使用了Microsoft Windows圖形用戶界面的許多先進特性和設計思想,採用了彈性可重復利用的完整的面向對象程序語言(Object-Oriented Language)、當今世界上最快的編輯器、最為領先的資料庫技術。對於廣大的程序開發人員來講,使用Delphi開發應用軟體,無疑會大大地提高編程效率,而且隨著應用的深入,您將會發現編程不再是枯燥無味的工作——Delphi的每一個設計細節,都將帶給您一份欣喜。
Delphi的基本形式
Delphi實際上是Pascal語言的一種版本,但它與傳統的Pascal語言有天壤之別。一個Delphi程序首先是應用程序框架,而這一框架正是應用程序的「骨架」。在骨架上即使沒有附著任何東西,仍可以嚴格地按照設計運行。您的工作只是在「骨架」中加入您的程序。預設的應用程序是一個空白的窗體(form),您可以運行它,結果得到一個空白的窗口。這個窗口具有Windows窗口的全部性質:可以被放大縮小、移動、最大最小化等,但您卻沒有編寫一行程序。因此,可以說應用程序框架通過提供所有應用程序共有的東西,為用戶應用程序的開發打下了良好的基礎。
Delphi已經為您做好了一切基礎工作——程序框架就是一個已經完成的可運行應用程序,只是不處理任何事情。您所需要做的,只是在程序中加入完成您所需功能的代碼而已。 在空白窗口的背後,應用程序的框架正在等待用戶的輸入。由於您並未告訴它接收到用戶輸入後作何反應,窗口除了響應Windows的基本操作(移動、縮放等)外,它只是接受用戶的輸入,然後再忽略。Delphi把Windows編程的回調、句柄處理等繁復過程都放在一個不可見的Romulam覆蓋物下面,這樣您可?/td>
5. Delphi優勢在哪裡
Delphi的VCL架構是開源的,每個人都可以查看編譯代碼
Delphi的面象對象技術也不錯,有助於學習OOP編程思想,VB可要差遠了。
Delphi的VCL,你如果能深入研究精通裡面的10%,那估計都是高手中的高手了
Delphi的面象對象技術也不錯,有助於學習OOP編程思想,VB可要差遠了。
基本上幫助不大.絕大多數用Delphi的程序員也沒有用OO的思想去開發.
>>Delphi的VCL,你如果能深入研究精通裡面的10%,那估計都是高手中的高手了
高手這一概念也太模糊了吧.
>>在現在這種技術日新月異的年代,一個能利用好高效率的開發工具、最大限度的發揮現有資源的程序員才是好的程序員。
好的程序員不一定稱的上,程序員優秀表現在創造性上.也許某些領域的軟體工程師需要這種素質.不過那些大師一般只說自己是程序員.我們也只說他們是偉大的程序員.
有時候接觸下Linux/Unix也不是壞事,這樣更容易體會到什麼是真正意義上的寫程序.
6. delphi 子窗體傳值問題|子窗體調用
多個子窗體A,它的form name是不一樣的,賦值時只要區別開窗體名就應該可以實現的
7. delphi中create的用法一直不是很清楚 有沒有系統全面的介紹
Create是構造函數,Create函數是TObject就有了的
比如:
var a: TClassA;
a:= TClassA.Create;
a此刻實際上是獲得了TClassA.Create返回的實例句柄,你可以認為此時a仍然只是一個變數,只不過a中是TClassA所創建的對象的地址.
如劉藝所說:這個a相當於一口鍋的把柄,有了把柄你就可能隨便操作這口鍋.
如果單純調用 TClassA.Create而不將它返回的句柄賦予某變數的話,那TClassA也會創建一個對象,只不過沒辦法去操作它而已,但它依然存在.
Create是一個特殊的類方法,一般用來在創建對象時,同時初始某些數據成員.
建議看看劉藝大作 面向對象編程思想 一書
8. delphi怎麼入門啊
delphi在我的學習經驗
1、delphi使用的是pascal語言類型(不需要去找pascal的書來看),去買或找本delphi的書(我是從delphi7開始的)先看看基本語法、數據類型、常用函數;
2、先嘗試這安裝delphi7,在網上下一個,安裝中的注意事項在網上可以找到;
3、先從簡單的程序聯系,比如控制窗體、按鈕事件、Time控制項的使用等,有些書上會介紹如何啟動delphi並在其中編寫代碼,有些是直接介紹代碼的,建議找比較基礎的;
4、如果能夠比較熟練的使用delphi中的控制項並能理解使用一些常用函數,再找一些有深度的書去學習delphi的編程思想;
5、主要是要動手去寫,不要怕出現錯誤,能將基礎的學習好,資料庫、網路、組件的開發都能比較快的上手,在需要新的組件或實現新的功能多在網上找找,看看別人的思路。
9. 小弟最近想學習delphi編程,求推薦初學者學習的書籍
可以參考一下<Delphi5開發人員指南>
如果你使用的Delphi2010 的話 可以參考<Delphi2010語法手冊>
那些組件什麼的都是多練然後學會的!多自己使用一下就行了
10. Delphi 語言要怎樣學(懸賞50、答的好可再加30)
問題:
1、如何下手學。
首先,掌握Object Pascal語法,了解OOP
其次,熟悉常用控制項
最後,多用Bai Google MSDN來解決碰到的問題
在做一感興趣的小程序後,就可以初步熟悉Delphi了,比如做個俄羅斯方塊、做個通訊錄等。
2、要掌握什麼知識才可以去應聘。
Delphi開發資料庫軟體比較多,SQL server要懂,連接SQL server的ADO要懂,再看些設計模式,增強設計能力。
說得很泛了,非一日之功。興趣是人生最好的老師。加油。