delphi基本語法


本文參考自《delphi2010語法手冊》

1. 工程文件結構

源文件聯系着unit單元,delphi主模塊源文件格式為.dpr,其他模塊為.pas,一個完整程序由一個.dpr和若干.pas組成。

2..dpr 程序結構

一個.dpr由程序頭、[use從句]、主程序塊組成。一個典型工程文件如下:

復制代碼
1 program Project;
2 {$APPTYPE CONSOLE}
3 uses
4    SysUnits;
5 begin
6 
7 end.
復制代碼

程序頭指示所編寫程序名稱,良好的程序,.dpr代碼盡量少,盡量將代碼分布在.pas中然后再在.dpr里調用。

在程序主文件使用到的所有.pas文件必須列在uses從句里。

用begin和end包圍的一段代碼稱為一個代碼塊。工程文件含有一個主程序塊用於存放主程序代碼,工程文件中的全局標識符必須聲明於begin之前。

3. 單元文件結構

程序的每個子模塊稱為一個單元,每個單元存儲在一個.pas文件中,一個文件對應一個單元。單元文件后綴名.pas,每個.pas文件依次包括:單元名稱、Interface關鍵字、implementation、[initialization]、[finalization]、關鍵字end。一個完整的.pas文件如下:

復制代碼
 1 unit Unit1;      //單元名稱
 2 
 3 interface        //interfae起始部分
 4    uses ...
 5 
 6 implementation  //implementation起始處
 7    uses.....
 8 
 9 initialization    //initialization部分起始處
10 .....
11 
12 finalization     //finalization部分起始處
13 .....
14 
15 end.              //單元文件結尾(end后必須以句號結尾)
復制代碼

unit名稱與.pas文件名稱一致,一個.dpr中不能應用兩個名稱相同的.pas.

interface至implementation之間的部分稱為interface部分。該部分可定義變量、常量、例程等。並非只有此處才可以定義標識符,但只有此處定義的標識符才能被其他文件訪問(全局標識符)。此部分定義的例程只是一個原型,具體的實現部分則放在implementation中。uses關鍵字緊接着interface之后,兩者間不允許有任何其他代碼。

implementation至initialization之間的部分可書寫例程的體代碼,此處定義的比變量、常量、例程等,只能在本implementation單元使用,interface部分和其他單元無法使用。

initialization至finalization之間的部分可選,此部分的代碼在程序啟動時運行,若多個單元中都包含該部分,則按照工程文件uses順序執行。

finalization部分可有可無,僅當initialization存在時才可使用此部分。程序退出時使用此部分代碼,除非程序由Halt強行退出。當多個單元都存在此部分,運行順序與initialization相反。

4. 單元語法與uses從句

 

 5. delphi的數據類型

簡單類型包括:整形、字符型、布爾型、枚舉、子界類型、實型。除實型以外,都是有序類型,即每個值在值域中都有一個序數。

6. 整形:

7. 實型:

8. 字符類型:包括ansiChar和WideChar,ansiChar使用一個字節表示一個字符,WideChar則用兩個字節表示一個字符。二者之間不能相互賦值。

9. 布爾型:用於判斷真假,只有true和false兩種值。delphi內置4中布爾類型:Boolean/ByteBool/WordBoolLongBool,內存中分別占1、1、2、4個字節。

10. 枚舉類型:

type
  名 = (標識符1,標識符2,標識符3.。。。);

11. 子界類型:

type
  子界類型名 = 下界..上界

結構類型包括:集合、數組、記錄

12. 集合:

復制代碼
type
  set1 = set of 有序值得集合

例子:
type
  set1 = set of 0..10;

type
  set2 = set of (red,green,blue);

type
  set3 = set of byte;
復制代碼

13. 數組:

復制代碼
靜態:

一維:
type
  myarr = Array[3..5] of integer  //序號是3、4、5值為integer類型

多維:
type
  myarr = Array[1..3] of Array[3..5] of integer;
或
type
  myarr = Array[1..3,3..5] of integer;

動態:
type
  dmyarr = array of char;
var 
  dal:dmyarr;
復制代碼

14. 記錄類型:

type
  trec = record
     mem1:char;
     mem2:integer;
     ...
end;

15. 字符串類型:

16. 指針類型:

復制代碼
指針的聲明:
var ansiStr :^AnsiString;
或先聲明類型在聲明變量:
type pansiStr = ^AnsiString;
var ansiStr:pansiStr;

指針的賦值:
方式有二,即將另一指針變量值賦給該指針變量,此兩個變量指向同一個地址;或者將某個變量的地址賦給該變量。
@取址符 如@ansiStr
^取值符 如ansiStr^
復制代碼

17. 變體類型:

variant

18.運算符

有序類型運算符:

復制代碼
ord:返回有序值在值域中的序數
如:ord('A') = 65
pred:返回指定值的前一個值
pred('B') = A
succ:返回指定值的下一個值
succ('A') = B
high:返回變量能夠表示的最大值或某類型的上界
high(byte) = 255
low:與high相反
復制代碼

數學運算符:

+
-
*
/
div    整除
mod  求余

邏輯運算符:

not    反
and   且
or      或
xor    異或

位運算符:

not    按位取反
and   按位取且
or      按位取或
xor    按位取異或
shl     左移
shr     右移

字符串運算符:

+  將字符串連接

集合運算符:

指針運算符:

關系運算符:

 

19. 條件語句

   if語句

1 if <條件表達式> then
2   <語句1>
3 else
4   <語句2>;

 

20. 選擇語句

復制代碼
1 Case 選擇表達式 of
2   常量1:語句1;
3   ...
4   常量n:語句n;
5 Else
6   ...
7 End;
復制代碼

21. 循環語句

  1》while

復制代碼
1 While 條件表達式 do
2    循環語句;

例:
while i < n do
begin
sum := sum+i;
i := i+1;
end;
復制代碼

  2》Repeat

復制代碼
repeat 循環體
until 條件表達式

例:
repeat
   i := i+1;
   sum := sum+i;
until i = n;
復制代碼


  3》for

for 計數器 := 初值 to/downto 終值 do
循環體

例:
for i := 1 to/downto n do
  writeln('hello delphi');

4》for...in

復制代碼
for v in set do
  循環體

例:
var
   myset :set of AnsiChar;
   ch : AnsiChar;
begin
  myset := ['1','2'];
  for ch in myset do
     writeln(ch);
end.
復制代碼

for in還可以遍歷數組、字符串、類、接口、記錄。

22. continue和break語句

 

23. 程序終止

  exit:退出當前正在執行的程序塊,不會退出整個程序,除非將其用在了主程序塊(.dpr文件中)中。

復制代碼
procedure Mi;
begin
  exit;
end;

或返回一個參數,該參數類型和函數返回類型一致
function Mi:string
begin
  exit('str');
end;
復制代碼

  Halt:引發異常中斷並通過中斷直接退出整個程序。

procedure Mi;
begin
  Halt;
end;

  terminate:delphi窗體程序中含有一個全局程序對象(一般是application),其中的terminate方法可在窗體程序的任何地方使程序正常中斷並退出。

procedure TForm1.Button1Click(sender:TObject);
begin
  Application.terminate;
end;


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM