Object Pascal 文法之語言基礎(一)

來源:互聯網
上載者:User

標籤:des   style   blog   http   color   使用   

Delphi 是以Object Pascal 語言為基礎的可視化開發工具,所以要學好Delphi,首先要掌握的就是Object Pascal 語言。 1 語言基礎

Object Pascal 語言是在Pascal 語言的基礎上發展起來的,它繼承了Pascal 語言文法嚴謹、資料結構豐富等優點,同時融入了物件導向編程的文法要素,使之成為一個完善的物件導向的程式設計語言。

 

1.1 Object Pascal 語言編寫環境


隨著Windows 作業系統的普及,很少有人在DOS 環境下編寫程式了,下面將為讀者介紹如何使用Delphi 編寫Object Pascal 程式。

一般來說,使用Delphi 開發出來的程式有以下3 種。
1.圖形介面程式
  圖形介面程式是目前Windows 平台最常見的應用程式,這些程式通過表單和對話方塊與使用者進行資訊互動,實現一定的功能。例如Microsoft 公司的Office 系列軟體和正在使用的Delphi 等,它們都是圖形介面程式。
2.控制台程式
  控制台程式是指一些沒有圖形化使用者介面的32 位Windows 應用程式,類似在DOS 環境下啟動並執行程式。這些程式很少要求使用者輸入大量的資訊,一般只實現特定的功能。控制台程式的代碼較小,佔用的系統資源少,因此編譯、連結的速度比較快。
3.伺服器程式
  伺服器程式可以接受和處理客戶應用程式的請求,並將結果資訊返回給客戶應用程式。伺服器應用程式一般在後台運行,不需要大量的人機互動資訊。


下面以開發一個簡單的控制台程式為例,向讀者介紹Delphi 中產生Object Pascal 程式的基本方法,並對Object Pascal 程式的一般結構進行簡單說明。

在Delphi 整合式開發環境中,依次選擇"File/New/Other"功能表項目開啟"New Items"對話方塊。選中"New"標籤頁中的"Console Application"選項,單擊"OK"按鈕,代碼編輯器中將自動開啟一個初始名為Project1.dpr 的控制台程式。請將Project1.dpr 檔案修改為如下內容:

program Project1;{$APPTYPE CONSOLE}//uses SysUtils;var    str:string;begin    // Insert user code here    writeln(’您好,這是一個示範程式,請輸入一行文字:’);    readln(str);    writeln(’您輸入的是:’,str);    readln;end.

依次選擇“File”/“Save All”功能表項目可以將更改後的工程檔案儲存到指定的檔案夾中。按 F9 鍵進入編譯、連結、運行程式。待程式提示“您好,這是一個示範程式,請輸入一行文字:”文字後,使用者可以輸入一些內容,例如輸入“早上好!”,程式將輸出結果:“您輸入的是:早上好!”。

以下是對該程式的幾點說明:

  • 程式第2 行中{$APPTYPE CONSOLE}是一個編譯器指令,它告訴編譯器這個程式是一個控制台程式。
  • uses SysUtils 語句前加了兩個斜線,將這條語句以備註陳述式的形式屏蔽掉了,因為在這個例子中是不需要SysUtils 單元的。
  • writeln 和readln 兩個函數分別表示輸出和輸入一行字元。程式最後的readln 語句是為了鎖定視窗,否則輸出結果將很快消失。

 

1.2 備註陳述式


作為起點,首先介紹如何在Object Pascal 代碼中添加註釋。如果不給程式加上適當的注釋,一段時間後就很難理清程式的流程。同時編譯器會將註解忽略,不會影響程式的編譯與運行。

Object Pascal 中有3 種類型的注釋。

  1. 花括弧注釋:組合符號“{”和“}”的成對使用,表示它們之間的內容是注釋部分。
  2. 圓括弧/星號注釋:組合符號“(*”和“*)”的成對使用,表示它們之間的內容是注釋部分。
  3. Visual C++風格的雙斜杠注釋:符號“//”的單獨使用,表示後面的內容是注釋部分。

看下面的例子:

  {花括弧注釋}  (*圓括弧/星號注釋*)  //C++風格的注釋

前兩種注釋在本質上是相同的,編譯器把處於限定符頭和限定符尾中間的內容當作注釋。花括弧圓括弧/星號比較適合在大段注釋時使用。如果在“{”或“(*”後面是一個“$”符號時,表示該句為一個編譯器指令,與普通的注釋不同,通常用來對編譯過程進行設定,例如1.1 節中樣本的第2行代碼:

{$APPTYPE CONSOLE}

對於Visual C++風格的注釋來說,雙斜杠後面到行尾的內容被認為注釋。此形式比較適用於單行和少量幾行注釋的情況。

注意,相同類型的注釋不要嵌套使用。雖然不同類型的注釋進行嵌套在文法上是合法的,但不建議這樣做。例如:

{(*這是合法的*)}(*{這是合法的}*)(*(*這是非法的*)*){{這是非法的}}

 

1.3 標識符


Object Pascal 語言使用的標識符包括字母A-Z、a-z、數字0-9 及其他一些標準字元。

表1-1 所示的單個字元是Object Pascal 語言的特殊符號。

表1-1 Object Pascal 語言的特殊符號的單個字元

特殊符號
$ & * # * (  )  [  ] {  }  ^  ;  :  @  <  =  >  ,  .  * +  / 

    
表1-2 所示的字元組合是Object Pascal 語言的單個的特殊符號。
表1-2  Object Pascal 語言的特殊符號的字元組合 

特殊符號
(*  *)  (.  .)  ..  //  :=  <>  >=  <=    


注意:[ ]與(. .)對應,{ }與(* *)對應。含義完全相同,可以相互替代。


在Object Pascal 語言中,標識符用來標識變數、常量、屬性、類、對象、過程、函數、程式、組件庫等。標識符可以由任意長度不帶空格的字串組成,但對於編譯器來講只有前面255個字元有效。其中,標識符的第1個字元必須是字母或底線,其餘字元可以是字母、數字或底線。通常,標識符由一個或多個具有適當意義的英文單片語成。Object Pascal 語言對區分字母的大小寫是不敏感的。在編程過程中,最好每個單詞的首字母大寫,其他字母小寫,以便於區分。

 

1.4 保留字和指令字


Object Pascal 語言定義了67 個保留字,它們不能被定義為標識符,如表1-3 所示。
表1-3  Object Pascal 語言的保留字 

保留字
and  array  as  asm  begin  case  class 
const  constructor  destructor  interface  div  Do  down 
to  else  end  except  exports  file  finalization 
finally  for  function  goto  if  implementation  in 
inherite  initialization  inline  is  interface  label  library 
mod  Nil  not  object  of  or  out 
packed  procedure  program  property  raise  record  repeat 
resource  string  set  shl  shr  then  thread 
var  to  try  type  unit  until  uses 
var  while  with  xor

       
Object Pascal 還定義了39 個指令字,它們具有特殊含義。但是,在使用者重新定義了指令字後,在範圍內它們就失去了原來的意義,如表1-4 所示。
表1-4  Object Pascal 語言的指令字 

指令字

absolute  abstract  assembler  automated  cdecl  contains 

default  dispid  dynamic  export  external  far 

forward  implements  index  message    name  near 

nodefault  overload  override  package  pascal  private 

protected  public  published  read  readonly  register

reintroduce requires resident safecall stdcall stored

virtual write writeonly

 

其中Private、Protected、Public、Published、Automated、On 和At 是指令字,但是,應當視其為保留字,不要定義和它們同名的標識符。在Delphi 整合式開發環境的代碼編輯器中,保留字和指令字以黑體顯示,這樣就大大方便了使用者的使用,不必擔心因為不小心而錯誤地將保留字或指令字定義為標識符。



聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.