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>
B. Delphi面向對象的編程方法(一)
Delphi的編程語言是以Pascal為基礎的 Pascal語言具有可讀性好 編寫容易的特點 這使得它很適合作為基礎的開發語言 同時 使用編譯器創建的應用程序只生成單個可執行文件( EXE) 正是這種結合 使得Pascal成為Delphi這種先進開發環境的編程語言
本章中 我們將討論Object Pascal的主要特點 並講解如何在事件處理過程和其他應用程序中 使用它來編製程序代碼握液 本章將講解Delphi應用程序中最常用的Object Pascal語法 而不是Pascal語言的一切細節 如果您完全不熟悉Pascal編程 請參閱一些基礎的Pascal教程 如果您具有編程經驗 並能熟練地使用其他流行程序語言 您將在本章的Object Pascal中發現一些相同的概念 如果您已經熟悉了Borland Pascal 就可以快速瀏覽或跳過本章
編寫Object Pascal程序代碼
在本章中 我們將從熟悉Pascal編程的角度 配合實例 講解Object Pascal編程的基本方法
在編寫自己的Object Pascal程序時 要注意程序的可讀性 Pascal語言是英式結構語言 在程序中選擇合適的縮排 大小寫風格 並在需要時將程序代碼分行 會使得程序代碼能夠很容易地被自己和他人讀懂 一般的程序員都有這樣的體驗 如果不給程序加上適當的註解 一段時間後 自己也難以理清程序的流程 給程序及時地加上芹宏注釋是良好的編程習慣 Delphi的注釋需要加註在{}之間 編輯器會把它們處理成為空白 Delphi保留了Borland Pascal編輯器的風格 關鍵字採用黑體字 被注釋的部分會變暗 這使得編程風格良好 易讀易寫
編寫賦值語句
在事件處理過程中 最常用到的工作就是把一個新值賦給一個屬性或變數 在設計用戶界面時 可以使用Object Inspector(Object Inspector)來改變其屬性 但有時需要在程序執行時改變屬性的值 而且有些屬性只能在執行時改變 這些屬性在Delphi的在線幫助的 Proprety 主題中被標為執行期屬性 進行這種改變 就必須使用賦值語句
下文的賦值語句表徵一個OnClick事件 當按鈕按動後 將編輯框部件Edit 的Color屬性置為clRed:procere TForm Button Click(Sender: TObject);beginEdit Color := clRed;end;
當按動按鈕後賦值語句被執行 編輯框變成紅色
在語句中 部件的名稱在屬性前 中間用 表示屬性的所屬關系 這樣就准確地指定了要將clRed值賦給哪一部件的哪一屬性 賦值號為 := 不論給屬性還是給變數賦值 都是將右邊的值賦給左邊的屬性或變數
當將一個屬性值 變數 常量或文本數據賦給屬性或變數時 所賦值的類型和接受此值的屬性或變數的類型應相同或兼容 一個屬性或變數的類型定義了此屬性或變數的可能值集合 也定義了程序代碼可以執行的運算 在前邊的常式中 編輯框部件的Color屬性和clRed的類型都是TColor 可以在在線幫助中找到一個屬性的類型 另外一種方法是在Object Inspector中選定該屬性值段 並按下F 鍵 則類型將在屬性說明的結尾處列出 例如Color屬性列出下邊的語句
Property Color : TColor;
有些屬性是只讀(Read Only)的 它們只能被讀取 不能被改變 請查閱在線幫助 在Delphi中這些只讀屬性都有註解
標識符的說明與使用嫌皮冊
標識符是Delphi應用程序中一些量的名稱 這些量包括變數(var) 常量(const) 類型(type) 過程(procere) 方法(Method)及其他 Object Pascal 在應用標識符時 必須首先說明它們 Object Pascal是強類型語言 它的編譯器可以檢查確保賦給變數或屬性的值是正確的類型 以便於您改正錯誤 因為Object Pascal是編譯語言 所以Delphi的執行速度要比使用解釋語言快得多 在使用標識符前說明它們 可以減少程序錯誤並增加代碼的效率
變數
變數是程序代碼中代表一個內存地址的標識符 而此地址的內存內容在程序代碼執行時可以被改變 在使用變數前必須對它進行說明 即對它進行命名 並說明它的類型 在所有變數說明以前加上保留字var 變數說明左邊是變數的名稱 右邊則是該變數的類型 中間用(:)隔開
varValue Sum : Integer;Line : String;
在窗體中加入一個名稱為Edit 的編輯框 再加入一個名稱(屬性Name)為Add的按鈕部件 並建立如下的事件處理過程
procere TForm addClick(Sender: TObject);varX Y: Integer;beginX := ;Y := ;Edit Text := IntToStr(X + Y);end;
在本例中 當按動ADD按鈕時 編輯框中顯示值 在Object Pascal中 必須確保變數或屬性被賦予類型相同或兼容的值 您可以嘗試將賦給X的值改為 或去掉IntToStr函數 在編譯時會出現類型不匹配的錯誤 這也說明了Object Pascal強類型語言的特點 Object Pascal有多個預定義的數據類型 您可以說明任何這些類型的變數
整形 Integer的范圍是 到 占 位元組的內存 Shortint從 到 占 位元組內存 Longint從 到 占 位元組內存 Byte從 到 占 位元組 Word從 到 占 位元組內存 它們都是沒有小數部分的數字
實型 Single可以包含 到 位有效小數部分 佔用 位元組的內存 Double類可以包含 到 位有效小數部分 佔用 位元組的內存 Extended類型包含 到 位有效小數部分 佔用 位元組內存 Comp可以包含 到 位有效小數部分 佔用 位元組內存 以上實數類型只有在 / 選項[N+]打開才可以使用 Real可以包含 到 位有效小數部分 佔用 位元組內存 它只有在和以前Borland Pascal兼容的情況下才使用 否則應使用Double或Extended
布爾型 Boolean 只包含true或False兩個值 佔用 位元組內存
字元型 Char 一個ASCII字元 字元串類型String一串最長可達 個ASCII字元
指針型 Pointer 可以指向任何特定類型
字元串型 PChar 是一個指向以零結尾的字元串的指針
除了預定義類型外 Delphi還有自行定義的類型 上述常式的TColor就是這種類型 此外 用戶還可以定義自己的數據類型 這部分內容將在下文中詳細講述
整型類別和實型類別都各有五種類型 同一類別中 所有的類型與其他同類別的都相容 您可以將一種類型的值賦給相同類別中不同類型的變數或屬性 而只需要這個值的范圍在被賦值的變數或屬性的可能值范圍內 例如 對於一個Shortint型的變數 可以接受在 到 范圍內的任意整數 例如Shortint類型的 您不能將 賦給它 因為 已經超出了Shortint的范圍了 將范圍檢查功能打開(選用Options|Project 並在Compiler Options Page中選擇Range Checking) 將會檢查出一個范圍錯誤 如果Range Checking沒有被打開 那麼程序代碼將可以執行 但被賦值的值將不是您期望的值
在一些情況下 您可以進行不同類型的變數或屬性的賦值 一般來說 可以將一個較小范圍的值賦給一個較大范圍的值 例如 您可以將整型值 賦給一個接受實型值的Double屬性而使得值成為 但如果將一個Double類型的值賦給整形變數 則會出現類型錯誤 如果您不清楚類型的兼容性 可以參閱Delphi的在線幫助中 Type Compatibility and Assignment Compatibility 主題
常量
常量在說明時就被賦予了一個值 在程序執行過程中是不可改變的 下面的例子說明了三個常量
constPi = ;Answer = ;ProctName = Delphi ;
象變數一樣 常量也有類型 不同的是 常量假設其類型就是常量說明中其所代表的值的類型 上文的三個常量的類型分別是real型 整形 字元串型 常量用 = 表示兩邊的值是相等的
過程與函數
lishixin/Article/program/Delphi/201311/8549