天天看点

delphi学习笔记1

1、Delphi注释

相同类型的注释不能嵌套。

虽然不同类型的注释进行嵌套在语法上是合法的,但是不建议这么做。

例如:

{(* 这是合法的 *)}

(*{ 这是合法的 }*)

(*(* 这是非法的 *)*)

{{ 这是非法的 }}

2、圆括号

Object Pascal中一个鲜为人知的特性是,当调用一个过程或函数时,如果被调用的过程或函数没有参数,圆括号是可以省略的。

因此,下面两个例子在语法上都是合法的:

  Form1.show;

  Form2.show();

3、缺省值参数

缺省值参数是在Delphi4中被引进的,当调用有缺省值参数的过程或函数时,可以不提供参数。为了声明一个有缺省值参数的过程或函数,在参数类型后面跟一个等号和缺省值,示例如下:

  Procedure HasDefval(S:String,I:integer=0);

HasDefval()过程能用下列两种方式调用:

第一种方式:两个参数都指定:

  Hasdefval('hello',6);

第二种方式:指定一个参数S,对I则用缺省值:

  Hasdefval('hello'); //对于I,使用缺省值

在使用缺省参数时,要遵循下列几条规则:

(1)有缺省值的参数必须在参数列表的最后,在一个过程或函数的参数列表中,没有缺省值的参数不能在有缺省值的参数的后面;

(2)有缺省值的参数必须是有序类型、指针类型或集合类型

(3)有缺省值的参数必须是数值参数或常量参数,不能使引用(out)参数或无类型参数。

有缺省值参数的最大好处是,在向一个已存在的过程和函数增加功能时,不必关心向后兼容的问题。

4、变量的初始化

从delphi2开始,能在var块中对全局变量进行赋初值,但是不能对过程或函数中的局部变量赋值。

Delphi编译器自动对全局变量赋初值,当程序开始时,所有的整形数赋值为0,浮点数赋值为0.0,指针为null,字符串为空等等,因此,在源代码中不必对全局变量赋零初值。

5、常量的定义

在Pascal中用const关键字来声明常量。

在Object pascal中不需要在对常量赋值时声明常量的类型,编译器能根据常量的值自动判断常量的类型并分配内存,对于整型常量,编译器在运行时跟踪他的值,并不对它分配内存。

编译器按照如下规则来对常量分配:整形数被认为是最小的integer类型,字符串值被认为是char类型或string类型(通过$H定义),浮点数被认为是extended数据类型,除非小数点位数小于4,这种情况被当做comp类型,integer和char的集合类型被存储为他们自己。

当然,在声明变量时,可以指定变量的类型,这样就能完全控制编译器对常量的处理。

继续阅读