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. 集合:

typeset1 = set of 有序值得集合例子:
typeset1 = set of 0..10;typeset2 = set of (red,green,blue);typeset3 = set of byte;

13. 数组:

静态:一维:
typemyarr = Array[3..5] of integer  //序号是3、4、5值为integer类型多维:
typemyarr = Array[1..3] of Array[3..5] of integer;
或
typemyarr = Array[1..3,3..5] of integer;动态:
typedmyarr = array of char;
var dal:dmyarr;

14. 记录类型:

typetrec = recordmem1: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
beginsum := sum+i;i := i+1;
end;

2》Repeat

repeat 循环体
until 条件表达式例:
repeati := i+1;sum := sum+i;
until i = n;

3》for

for 计数器 := 初值 to/downto 终值 do
循环体例:
for i := 1 to/downto n dowriteln('hello delphi');

4》for...in

for v in set do循环体例:
varmyset :set of AnsiChar;ch : AnsiChar;
beginmyset := ['1','2'];for ch in myset dowriteln(ch);
end.

for in还可以遍历数组、字符串、类、接口、记录。

22. continue和break语句

23. 程序终止

exit:退出当前正在执行的程序块,不会退出整个程序,除非将其用在了主程序块(.dpr文件中)中。

procedure Mi;
beginexit;
end;或返回一个参数,该参数类型和函数返回类型一致
function Mi:string
beginexit('str');
end;

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

procedure Mi;
beginHalt;
end;

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

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

welcome to my space
分类: 其他
标签: delphi
好文要顶             关注我     收藏该文         

沈金强
关注 - 0delphi基本语法

本文参考自《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. 集合:

typeset1 = set of 有序值得集合例子:
typeset1 = set of 0..10;typeset2 = set of (red,green,blue);typeset3 = set of byte;

13. 数组:

静态:一维:
typemyarr = Array[3..5] of integer  //序号是3、4、5值为integer类型多维:
typemyarr = Array[1..3] of Array[3..5] of integer;
或
typemyarr = Array[1..3,3..5] of integer;动态:
typedmyarr = array of char;
var dal:dmyarr;

14. 记录类型:

typetrec = recordmem1: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
beginsum := sum+i;i := i+1;
end;

2》Repeat

repeat 循环体
until 条件表达式例:
repeati := i+1;sum := sum+i;
until i = n;

3》for

for 计数器 := 初值 to/downto 终值 do
循环体例:
for i := 1 to/downto n dowriteln('hello delphi');

4》for...in

for v in set do循环体例:
varmyset :set of AnsiChar;ch : AnsiChar;
beginmyset := ['1','2'];for ch in myset dowriteln(ch);
end.

for in还可以遍历数组、字符串、类、接口、记录。

22. continue和break语句

23. 程序终止

exit:退出当前正在执行的程序块,不会退出整个程序,除非将其用在了主程序块(.dpr文件中)中。

procedure Mi;
beginexit;
end;或返回一个参数,该参数类型和函数返回类型一致
function Mi:string
beginexit('str');
end;

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

procedure Mi;
beginHalt;
end;

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

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

welcome to my space
分类: 其他
标签: delphi
好文要顶             关注我     收藏该文         

沈金强
关注 - 0delphi基本语法

本文参考自《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. 集合:

typeset1 = set of 有序值得集合例子:
typeset1 = set of 0..10;typeset2 = set of (red,green,blue);typeset3 = set of byte;

13. 数组:

静态:一维:
typemyarr = Array[3..5] of integer  //序号是3、4、5值为integer类型多维:
typemyarr = Array[1..3] of Array[3..5] of integer;
或
typemyarr = Array[1..3,3..5] of integer;动态:
typedmyarr = array of char;
var dal:dmyarr;

14. 记录类型:

typetrec = recordmem1: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
beginsum := sum+i;i := i+1;
end;

2》Repeat

repeat 循环体
until 条件表达式例:
repeati := i+1;sum := sum+i;
until i = n;

3》for

for 计数器 := 初值 to/downto 终值 do
循环体例:
for i := 1 to/downto n dowriteln('hello delphi');

4》for...in

for v in set do循环体例:
varmyset :set of AnsiChar;ch : AnsiChar;
beginmyset := ['1','2'];for ch in myset dowriteln(ch);
end.

for in还可以遍历数组、字符串、类、接口、记录。

22. continue和break语句

23. 程序终止

exit:退出当前正在执行的程序块,不会退出整个程序,除非将其用在了主程序块(.dpr文件中)中。

procedure Mi;
beginexit;
end;或返回一个参数,该参数类型和函数返回类型一致
function Mi:string
beginexit('str');
end;

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

procedure Mi;
beginHalt;
end;

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

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

delphi基本语法(摘自博主:沈金强)相关推荐

  1. spine - unity3D(摘自博主softimagewht)

    摘自:(博主 http://www.cnblogs.com/softimagewht/p/4149118.html) //skeletonData SkeletonAnimation skeleton ...

  2. 转:程序员常用不常见很难得的地址大全,博主很辛苦

    原地址:http://www.cnblogs.com/Fresh-Air/archive/2013/05/07/3065090.html 博主今日推荐: 乘风原创程序 http://study.qqc ...

  3. [茗洋芳竹]程序员常用不常见很难得的地址大全,博主很辛苦

    [茗洋芳竹]程序员常用不常见很难得的地址大全,博主很辛苦 如果你有好的网址,请评论哦,我加上去,并附上你的昵称,并加上你的博客链接地址,表示感谢 茗洋芳竹声明:以下网址全部链接,本人全部测试过,如果发 ...

  4. (转)[茗洋芳竹]程序员常用不常见很难得的地址大全,博主很辛苦

    如果你有好的网址,请评论哦,我加上去,并附上你的昵称,并加上你的博客链接地址,表示感谢 茗洋芳竹声明:以下网址全部链接,本人全部测试过,如果发现有没有用的链接,请给评论哦 这是一篇可以尽量少走弯路的文 ...

  5. [茗洋]程序员常用不常见很难得的地址大全,博主很辛苦

    网址分类导航: 简单设置与开发支持桌面程序可能用的到        美工可能会看的         前端人员可能用的 简单工具         常用软件下载           数据库工具      ...

  6. python爬取文章保存_爬取博主所有文章并保存到本地(.txt版)--python3.6

    闲话: 一位前辈告诉我大学期间要好好维护自己的博客,在博客园发布很好,但是自己最好也保留一个备份. 正好最近在学习python,刚刚从py2转到py3,还有点不是很习惯,正想着多练习,于是萌生了这个想 ...

  7. DayDayUp:博主,在此,祝愿大家(十五种编程语言输出),2019年春节快乐!猪年诸事大吉!学要有所成,劳要有所获!

    DayDayUp:博主,在此,祝愿大家(十五种编程语言输出),2019年春节快乐!猪年诸事大吉!学要有所成,劳要有所获! 感谢大家,这些年以来的支持!感谢!感恩! 十五种编程语言输出 祝大家们新年快乐 ...

  8. 51CTO博客移动化意味着什么?IT博主可以搞事情了!

    我红着脸写下了这个标题. 就好比在21世纪的今天,我煞有介事地说:"手机能上网意味着什么?" 好在,很多看起来不可思议的事情,在特定的环境下,就没那么匪夷所思了.如果对山区孩子说这 ...

  9. 爬取博主所有文章并保存到本地(.txt版)--python3.6

    闲话: 一位前辈告诉我大学期间要好好维护自己的博客,在博客园发布很好,但是自己最好也保留一个备份. 正好最近在学习python,刚刚从py2转到py3,还有点不是很习惯,正想着多练习,于是萌生了这个想 ...

  10. 来自原CSDN排名第一博主:成功的背后!(给所有IT人)

    =================================================================================== 不管怎么说,这篇文章还是值得看看 ...

最新文章

  1. python--005-函数参数、变量
  2. php 无限查找下级业绩_php如何查找会员无限分类的所有上级和所有下级
  3. c# 泛型有什么作用?
  4. Java中传值与传地址
  5. [网络安全自学篇] 三十四.Windows系统安全缺陷之5次Shift漏洞启动计算机机理分析
  6. Electron 实战:前端人的最佳跨平台解决方案
  7. java设计模式学习3--Command Pattern[原创]
  8. 互联网的的一些历史资料收集
  9. 如何更改mssq,SSAS l代理运行身份验证
  10. ipad iphone开发_如何在iPhone或iPad上强制退出应用程序
  11. java 104规约_IEC104规约,Java开发主站程序
  12. 什么是社会融资规模,M0、M1、M2?
  13. Flash--提高flash的使用寿命(1)
  14. 联阳IT6561方案设计|替代IT6561方案DP转HDMI转换|CS5218替代IT6561芯片设计
  15. Vivado综合running时间太长
  16. s1200 博图高速脉冲计数值没有变化_什么原因会导致 PLC1200 高数计数器无法读取编码器发出的脉冲??-工业支持中心-西门子中国...
  17. 安卓Android校园综合服务系统校园帮app
  18. 【oracle】 字段属性为 date 的相关操作
  19. 使用计算机正确坐姿,如何保持正确坐姿?(多图)
  20. ESP Wi-Fi 连接异常断开原因排查分析

热门文章

  1. mac怎么用u盘装系统?配备Apple T2 芯片的Mac电脑如何使用U盘装系统?
  2. 《University Calculus》-chape8-无穷序列和无穷级数-欧拉恒等式
  3. Win10正式版历代记
  4. I2S UDAl1380
  5. Annoying Present CodeForces - 1009C
  6. amd显卡风扇调节_amd显卡风扇速度设置linux版本
  7. 三代Pacbio进行细菌16S全长测序
  8. selenium 浏览器打开新标签页
  9. 阿里云国际ECS云服务器免费试用版如何使用?
  10. 给红米Note3高配版手机刷入Linux系统postmarketOS