博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
delphi基本语法
阅读量:5900 次
发布时间:2019-06-19

本文共 3748 字,大约阅读时间需要 12 分钟。

本文参考自《delphi2010语法手册》

1. 工程文件结构

源文件联系着unit单元,delphi主模块源文件格式为.dpr,其他模块为.pas,一个完整程序由一个.dpr和若干.pas组成。

2..dpr 程序结构

一个.dpr由程序头、[use从句]、主程序块组成。一个典型工程文件如下:

1 program Project;2 {$APPTYPE CONSOLE}3 uses4    SysUnits;5 begin6 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') = 65pred:返回指定值的前一个值pred('B') = Asucc:返回指定值的下一个值succ('A') = Bhigh:返回变量能够表示的最大值或某类型的上界high(byte) = 255low:与high相反

数学运算符:

+-*/div    整除mod  求余

逻辑运算符:

not    反and   且or      或xor    异或

位运算符:

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

字符串运算符:

+  将字符串连接

集合运算符:

指针运算符:

关系运算符:

 

19. 条件语句

   if语句

1 if 
<条件表达式>
then2
<语句1>
3 else4
<语句2>
;

 

20. 选择语句

1 Case 选择表达式 of2   常量1:语句1;3   ...4   常量n:语句n;5 Else6   ...7 End;

21. 循环语句

  1》while

1 While 条件表达式 do2    循环语句; 例: 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:stringbegin  exit('str');end;

  Halt:引发异常中断并通过中断直接退出整个程序。

procedure Mi;begin  Halt;end;

  terminate:delphi窗体程序中含有一个全局程序对象(一般是application),其中的terminate方法可在窗体程序的任何地方使程序正常中断并退出。

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

转载于:https://www.cnblogs.com/armyfai/p/4010563.html

你可能感兴趣的文章
linux文件描述符
查看>>
传值引用和调用引用的区别
查看>>
hyper-v 无线网连接
查看>>
Python3.7.1学习(六)RabbitMQ在Windows环境下的安装
查看>>
Windows下memcached的安装配置
查看>>
ubuntu: firefox+flashplay
查看>>
web.xml 中CharacterEncodingFilter类的学习
查看>>
贪吃蛇逻辑代码
查看>>
实现c协程
查看>>
ASP.NET视频教程 手把手教你做企业论坛网站 视频教程
查看>>
[LeetCode] Meeting Rooms II
查看>>
从Swift学习iOS开发的路线指引
查看>>
Scribes:小型文本编辑器,支持远程编辑
查看>>
ssh 安装笔记
查看>>
3-继承
查看>>
海归千千万 为何再无钱学森
查看>>
vue2.0 仿手机新闻站(六)详情页制作
查看>>
JSP----九大内置对象
查看>>
Java中HashMap详解
查看>>
delphi基本语法
查看>>