ar; 关键字 var 可以在许多地方使用,例如放在函数或过程的开始部分,用来声 明函数或过程的局部变量;也可以放在单元中,用于声明全程变量。var 关键字 之后是一组变量名列表,每个变量名后跟一个冒号和数据类型名,一行中可以声 明多个变量,如上例中最后一句。 一旦变量
的类型被指定,你只能对变量执行该变量类型支持的操作。例如, 在判断操作中用布尔值,在数字表达式中用整型值,你不能将布尔值和整型值混 用(在 C 语言中可以这样) 。 使用简单的赋值语句,可写出下面的代码: Value := 10; IsCorrect := True; 但下面的语句是不正确的,因为两个变量数据类型不同: Value := IsCorrect; // error 在 Delphi 中编译这句代码, 会出现错误信息:Incompatible types: 'Integer' and 'Boolean'.(类型不兼容: ‘整型’和‘布尔型’。象这样的错误通常是编程错误, ) 因为把一个 True 或 False 的值赋给一个整型变量没有什么意义。你不该责怪 Delphi 提示这样的错误信息,代码中有不对的地方 Delphi 当然要提出警告。
把变量的值从一种类型转换到另一种类型往往不难做到,有些情况下类型转 换会自动实现,不过一般情况下需要调用特殊的
系统函数,通过改变数据内部表 示来实现类型转换。 在 Delphi 中,当你声明全程变量时,你可以赋给它一个初值。例如,你可 以这样写: var Value: Integer = 10; Correct: Boolean = True; 这种初始化方法只能用于全程变量,不能用于过程或方法的变量。 3、 常量 、 对于在程序运行期间保持不变的值,Pascal 允许通过常量来声明。声明常量 不必特定数据类型,但需要赋一个初值。编译器会根据所赋初值自动选用合适的 数据类型。例如: const Thousand = 1000; Pi = 3.14; AuthorName = 'Marco Cantù'; Delphi 根据常量的值来决定它的数据类型。 上例中的 Thousand 变量, Delphi 会选用 SmallInt 数据类型 (短整型--能容纳 Thousand 变量的最小整数类型)。如 果你想告诉 Delphi 采用特定的类型,你可在声明中加入类型名,方法如下: const Thousand: Integer = 1000; 对于声名的常量,编译器有两种编译选择:第一种为常量分配内存,并把常 量的值放入内存;第二种在常量每次使用时复制常量值。第二种方法比较适合简 单常量。 资源串常量 当定义字符串常量时,你可这样写: const AuthorName = 'Marco Cantù'; 从 Delphi 3 开始,你可以用另一种方式写: resourcestring AuthorName = 'Marco Cantù'; 上面两个语句都定义了一个常量,也就是定义了一个在程序运行期间保持不 变的值,但两者的实现过程却不同,用 resourcestring 指令定义的字符串变量将 被保存到程序资源的字符串表中。从例子 ResStr 你可了解资源串的实际作用, 例子中设置了一个按钮, 相应代码如下: resourcestring AuthorName = 'Marco Cantù'; BookName = 'Essential Pascal'; procedure TForm1.Button1Click(Sender: TObject);
begin ShowMessage (BookName + #13 + AuthorName); end; 以上代码中的两个字符串将分两行输出显示,因为字符串被分行符 #13 隔
开。 有趣的是,当你用资源编辑器打开执行文件时,你会在程序资源中看到你所 定义的字符串。这意味着字符串并没有进入编译代码,而是保存在执行文件 (EXE 文件) 的一个单独区域。 注意:简而言之,采用资源的好处一方面可让 Windows 来完成有效的内存 处理, 另一方面不用更改
源代码就可实现程序的本地化 (把字符串翻译成不同的 语言)。 4、 数据类型 、 ascal 中有多种预定义的数据类型,它们可分为三大类:有序数据类型,实 数类型和字符串类型。 有序类型 有序数据类型是建立在概念“顺序”或“序列”基础上的数据类型。你不仅 可比较两个有序值的大小,而且可以求取给定有序值的前驱及后继,或者计算它 们的最大或最小