在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
本文参考自《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 循环语句; 2》Repeat repeat 循环体 until 条件表达式 例: repeat i := i+1; sum := sum+i; until i = n;
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; |
2023-10-27
2022-08-15
2022-08-17
2022-09-23
2022-08-13
请发表评论