delphi基本语法

摘要:
本文参考了《德尔菲2010语法手册》。1.项目文件结构源文件链接到单位。delphi主模块源文件格式为.dpr,其他模块为。帕斯州。一个完整的程序由一个dpr和几个Pas组成。实现和初始化之间的部分可以编写例程的主体代码。此处定义的比率变量、常量、例程等只能用于此实现单元,接口部分和其他单元不能使用。Delphi有四种内置的布尔类型:Boolean/ByteBool/WordBoolLongBool,它们分别占用1、1、2和4个字节的内存。

本文参考自《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的数据类型

delphi基本语法第5张

简单类型包括:整形、字符型、布尔型、枚举、子界类型、实型。除实型以外,都是有序类型,即每个值在值域中都有一个序数。

6. 整形:

delphi基本语法第6张

7. 实型:

delphi基本语法第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. 字符串类型:

delphi基本语法第12张

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     右移

字符串运算符:

+  将字符串连接

集合运算符:

delphi基本语法第17张

指针运算符:

delphi基本语法第18张

关系运算符:

delphi基本语法第19张

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;

免责声明:文章转载自《delphi基本语法》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇关于.NET大数据量大并发量的数据连接池管理 Virusvue中使用axios对同一个接口连续请求导致返回数据混乱的问题下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

JSTL 标签库详细介绍资料

前言从jsp 1.1规范开始,jsp就支持在jsp中使用自定义标签了,自定义标签的广泛使用造成了程序员重复定义,这样就促成了jstl(javaserver pages standard tag library)的诞生。因为工作中需要用到jstl,但网上却苦于找不到有关jstl的中文资料,所以就有了这篇文章。jstl简介jstl是一个不断完善的开放源代码的j...

Delphi中initialization和finalization

Delphi中initialization和finalization 注:本文主要是讨论delphi程序启动时和退出时的执行顺序,期间有些知识来源于Delphi帮助,有些来自《Delphi7程序设计教程》(这本书只告诉我有initialization 和 finalization 这两个关键字,但是没讲明白)(唉,现在的书只讨论框框架架,不讨论细节,写...

孟德尔随机化 Mendelian randomization,MR

孟德尔随机化分析 Mendelian randomization,MR使用遗传变异作为工具变量,推断暴露因素与结局之间的因果关系,能有效克服混杂合反向因果问题所导致的偏倚。 1986年,Katan提出MR思想:由于配子形成时,遵循“亲代等位基因随机分配给子代”的孟德尔遗传规律,如果基因型决定表型,基因型通过表型而与疾病发生关联,因此可以使用基因型作为工具变...

[转]C++中的自动存储、静态存储和动态存储

根据用于分配内存的方法,C++中有3中管理数据内存的方式:自动存储、静态存储和动态存储(有时也叫做自由存储空间或堆)。在存在是间的长短方面,以这三种方式分配的数据对象各不相同。下面简要介绍这三种类型(注:C++11中新增了第四种类型——线程存储) 1.自动存储 在函数内部定义的常规变量使用自动存储空间,被称为自动变量(automatic variable)...

JavaScript-Runoob:JavaScript 数据类型

ylbtech-JavaScript-Runoob:JavaScript 数据类型 1.返回顶部 1、 JavaScript 数据类型 值类型(基本类型):字符串(String)、数字(Number)、布尔(Boolean)、对空(Null)、未定义(Undefined)、Symbol。 引用数据类型:对象(Object)、数组(Array)、函数(Fu...

delphi 线程教学第二节:在线程时空中操作界面(UI)

第二节:在线程时空中操作界面(UI) 1.为什么要用 TThread ? TThread 基于操作系统的线程函数封装,隐藏了诸多繁琐的细节。 适合于大部分情况多线程任务的实现。这个理由足够了吧? 什么?你要用 windows 的线程 api 来实现多线程? 我可以负责任地告诉你,如果你用 api 来实现多线程任务, 加之你天资聪明,对 delphi...