Pascal精要笔记

Pascal精要笔记

Pascal语言的大小写不敏感特性有一个例外:控件包中的Register 过程必须以大写字母R开始,因为需要与C++Builder 兼容。

,编译器不编译代码中的空格、空行和Tab键空格,这些元素通称为空白,它们只用来提高代码的可读性,不影响编译过程。(也就是说: = 这样的写法没有问题,我原来还以为由问题那!)

记住要用代码模板(方便开发)快捷键:Ctrl+J

Absolute 关键字是共享变量地址有些象C++的共用体
 var
  Str: string[32];
  StrLen: Byte absolute Str;

与大多数编程语言相反,Pascal语言中and和or运算符的优先级比关系运算符高。因此,如果你的代码为a < b and c < d,编译器首先会编译and运算符,由此导致编译出错。为此你应该把每个 < 表达式用小括号括起来: (a < b) and (c < d)。 

 

集合,集合除了 并(+)差(-) 交(*) 等可以用INCLUDE和EXCLUDE效率更高

Include (Style, fsBold);

当时间和日期转换成字符串时,其转换格式取决于Windows 的系统设置。

Round转换一个实型值为四舍五入后的整型值

注意:在最近版本的Delphi Pascal 编译器中,Round 函数是以 CPU 的 FPU (浮点部件) 处理器为基础的。这种处理器采用了所谓的 "银行家舍入法",即对中间值 (如 5.5、6.5) 实施Round函数时,处理器根据小数点前数字的奇、偶性来确定舍入与否,如 5.5 Round 结果为 6,而 6.5 Round 结果也为6, 因为 6 是偶数。并不只是DELPHI这样(VB也这样 )

注意:一般来说,你应该避免使用上述不命名类型,因为你不能把它们作为参数传给例程,也不能用于声名同一类型的其他变量。实际上,Pascal的类型兼容规则是基于类型名的,而不是基于实际的类型定义。两个类型相同的变量仍有可能是不兼容的,除非他们的类型有完全相同的名字。对于不命名类型,需要编译器给它分配一个内部名字,因此对于数据结构复杂的变量,要习惯于定义命名数据类型,你一定不会为此白费工夫的。

Delphi 编译会通过,但在运行时,如果你开启了范围检查编译选项(在工程选项对话框的编译器页设置),你将得到 Range check error (范围检测错误)信息。

注意:建议你在开发程序时开启上述编译选项,以使程序更健壮并易于调试。这样即使遇上错误,你也会得到一个明确的信息而不是难以琢磨的行为。最终完成程序时你可以去掉这个选项,使程序运行得快一些,不过影响很小。因此我建议你开启所有运行时的检测选项,如溢出检查和堆栈检查,甚至提交程序时仍然保留它们

Delphi 长字符串的情况略有不同,长字符串看起来象引用,但是如果你改变了该字符串的串变量,那么这个串在更新前将被拷贝下来。作为值参被传递的长字符串只在内存使用和操作速度方面才象引用,但是如果你改变了字符串的值,初始值将不受影响。相反,如果通过引用传递长字符串,那么串的初始值就可以改变。

实质上字符串的值传递类似引用,只不过系统在幕后进行了操作,这样效率会低。

在Delphi中不常使用指针,但是你经常会用一个极为相似的结构--引用(references)。每个对象实例实际上是一个隐含的指针,或说是对其实际数据的引用,利用引用,你能象用其他数据类型一样使用对象变量。

当通过引用传递参数时,引用参数用关键字var 标示

procedure DoubleTheValue (var Value: Integer);

Delphi 3增加了一种新的参数:out。out参数没有初始值,只是用来返回一个值。out参数应只用于COM过程和函数,一般情况下最好使用更有效的var参数。除了没有初始值这一点之外,out参数与var参数相同。

常量参数,不能够在过程或函数中改变传递过来的值。只可使用。

果你只传递数组的一部分,可使用Slice 函数,

明一个过程或函数,而且只给出它的名字和参数,不列出其实现代码,需要在句尾加forward 关键字:

 

                                          关键字表

关键字

作用

absolute

指令 (变量)

abstract

指令 (方法)

and

运算符 (布尔)

array

类型

as

运算符 (RTTI)

asm

语句

assembler

向后兼容 (汇编)

at

语句 (异常处理)

automated

访问类别符 (类)

begin

块标记

case

语句

cdecl

函数调用协定

class

类型

const

声明或指令(参数)

constructor

特殊方法

contains

运算符 (集合)

default

指令 (属性)

destructor

特殊方法

dispid

dispinterface 界面类别符

dispinterface

类型

div

运算符

do

语句

downto

语句 (for)

dynamic

指令 (方法)

else

语句 (if 或 case)

end

块标记

except

语句 (异常处理)

export

向后兼容 (类)

exports

声明

external

指令 (函数)

far

向后兼容 (类)

file

类型

finalization

单元结构

finally

语句 (异常处理)

for

语句

forward

函数指令

function

声明

goto

语句

if

语句

implementation

单元结构

implements

指令 (属性)

in

运算符 (集合) - 工程结构

index

指令 (dipinterface界面)

inherited

语句

posted @ 2012-05-08 20:03  熟如陌路  阅读(304)  评论(0编辑  收藏  举报