这一章把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'); //使用缺省参数调用方法,只给出第一个参数

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

  • 有缺省值的参数必须在参数列表的最后。在一个过程或函数的参数列表中,没有缺省值的参数不能在有缺省值的参数的后面。 
  • 有缺省值的参数必须是有序类型、指针类型或集合类型。
  • 有缺省值的参数必须是数值参数或常量参数,不能是引用(out)参数或无类型参数。

    2.3 变量

  • 变量只能在var域进行声明,不能像C++一样随用随声明。
  • Object Pascal像Visual Basic但不像C和C++,它的变量名是大小写不敏感的。
  • Object Pascal可以使相同类型的变量合并在同一行上声明。如:VarName1,VarName2: SomeType;
  • 全局变量在声明的时候可以赋初值。如:i:Integer = 10;
  • 没有赋初值的全局变量会自动被Delphi编译器赋初值。当程序开始时,所有的整型数赋为0,浮点数赋为0.0,指针赋为nil,  字符串为空等等,因此,在源代码中不必对全局变量初始化。

    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);
  • posted on 2011-06-03 23:59  heart4u  阅读(536)  评论(0编辑  收藏  举报