这一章把Delphi的可视化元素放在一边,主要讲解Delphi使用的语言-Object Pascal语言。也就是面向对象的Pascal,简单的说就是加入了类的Pascal。
2.1 注释
注释是对原程序的说明部分,它是对原程序中的语句,或者编程的目的作的说明,是给程序员来看的,并不参加程序的编译,不会被编译成为可执行的代码。Object Pascal支持三种类型的注释:
{这是花括号注释,被花括号包括的部分为注释的内容} (*这是圆括号加星号的注解,被圆括号加星号包括的部分为注释的内容*) //这是双斜线注释,是C++风格的行注解,在双斜线右侧到行尾的内容为注释的内容
注意 相同类型的注释不能嵌套。虽然不同类型的注释进行嵌套在语法上是合法的,但不建议这个做。
2.2 过程和函数特征
介绍一些新的或鲜为人知的特性。
2.2.1 圆括号
虽然不是在Delphi 5.0才有的,但Object Pascal中一个鲜为人知的特性是,当调用一个过程或函数时,如果被调用的过程和函数没有参数,圆括号是可以省略的。因此下面两个例子在语法上都是合法的:
Form1.Show; Form1.Show();
2.2.2 重载
Delphi4就引进了函数重载的概念(多个过程或函数有相同的名字,但有不同的参数列表)。所有需要重载的方法都要声明,并用overload来指示,示例如下:
procedure Hello(I:integer);overload; procedure Hello(S:string);overload; procedure Hello(D:double);overload;
2.2.3 缺省值参数
缺省值参数是在Delphi4中被引进的(当调用有缺省值参数的过程和函数时,可以不提供参数)。为了声明一个有缺省值参数的过程或函数,在参数类型后跟一个等号和缺省值,示例如下:
procedure HasDefVal(S:string;I:Integer = 0); //带缺省参数的过程 HasDefVal('hello',26); //带全部参数的调用 HasDefVal('hello'); //使用缺省参数调用方法,只给出第一个参数
在使用缺省参数时要遵循下列几条规则:
2.3 变量
2.4 常量
在Pascal中用const关键字来声明常量,就像在C语言中const关键字一样。在Object Pascal语言中不需要在对常量赋值时声明常量的类型,编译器能根据常量的值自动判断常量的类型并分配内存;对于整形常量,编译器在运行时跟踪它的值,并不对它分配内存。
const ADecimalNumber = 3.14; i = 10; ErrorString = 'Danger,Danger,Danger!';
注意 编译器根据如下规则来对常量分配内存:整型数被认为是最小的Integer类型(10被认为是ShortInt,32000被认为是SmallInt等等);字符串值被认为是Char类型或string类型(通过$H定义);浮点值被认为是extended数据类型,除非小数点位数小于4位(这种情况被当作comp类型);Integer和Char的集合类型被存储为它们自己。
当然,在声明常量是可以指定常量的类型,这样就能完全控制编译器对常量的处理。
const ADecimalNumber: Double = 3.14; I: Integer = 10; ErrorString :string = 'Danger,Danger,Danger!';
Object Pascal允许在const和var声明时用编译期间的函数,这些函数包括Ord()、Chr()、Trunc()、Rount()、High()、Low()、和Sizeof()。
type A = array[1..2] of Integer; const w: Word = Sizeof(Byte); var i: Integer = 8; j: SmallInt = Ord('a'); L: Longint = Trunc(3.14159); x: ShortInt = Round(2.71828); B1: Byte = High(A); B2: Byte = Low(A); C: char = Chr(46);