PASCAL 学习 delphi

本文介绍了Pascal和Delphi的基本编程概念,包括注释的使用方式、代码模板的功能和使用方法、关键字的作用以及运算符的优先级等内容。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

1,在Pascal中,注释括在大括号中或带星号的圆括号中。Delphi 也认可C++ 风格的注释,

即把注释放在双斜线后。例如

{this is a comment}
(* this is another comment *)
// this is a comment up to the end of the line
2,Pascal 编译器(不象其他语言的编译器)不考虑字符的大小写,
因此标识符Myname、 MyName、 myname、 myName、 
和MYNAME是完全相同的
3,使用代码模板 

Delphi 3 中增加了用于代码编辑的新功能“代码模板”。

由于写Pascal 语句时,常常会重复键入相同的一组关键字,

为此Borland 公司开发了名为“代码模板”的新功能,代码模板中

存放了能与代码缩略形式对应的完整代码,你输入缩略代码,

然后按Ctrl+J,完整的代码就出现了。

例如,你输入arrayd,然后按Ctrl+J,Delphi 编辑器会把你的

文本扩展为:

array [0..] of ;

由于同一种代码结构在预定义的代码模板中通常有多种样式,

所以模板中的缩略形式一般加有一个后缀字母,以便你选用。

此外,你也可以只输入缩略形式的头几个字母,

如你输ar,然后按Ctrl+J,那么,编辑器中会弹出一个菜单,

菜单中列出了代码缩略形式选项,见图2.2所示。

 

代码模板可以定制,就是你可以修改已有的模板也可以添加自己常用

的代码段。用代码模板输入的代码文本中通常会出现‘|’字符,

它表示输入模板代码后光标应跳到的位置,就是说你应该从

这个光标位置开始输入,写完这句代码。

4,
关键字 

关键字是Object Pascal 的保留标识符,在语言中有着特殊含义。

保留字不能用作标识符,指令字也同样不应该用作标识符,

即使编译器允许也最好不用。在实际中你不应该把任何关键字

用作标识符。

表2.1是面向对象 Pascal 语言(Delphi 4)中特殊标识符的完整列表,

其中包括关键字及保留字。

表2.1:面向对象Pascal语言中的关键字及保留字

关键字 作用
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 语句
initialization单元结构
inline 向后兼容 (见 asm)
interface 类型
is 运算符 (RTTI)
label 声明
library 程序结构
message 指令 (方法)
mod 运算符 (数学)
name 指令 (函数)
near 向后兼容 (类)
nil 数值
nodefault 指令 (属性)
not 运算符 (布尔)
object 向后兼容 (类)
of 语句 (case)
on 语句 (异常处理)
or 运算符 (布尔)
out 指令 (参数)
overload 函数指令
override 函数指令
package 程序结构 (控件包)
packed 指令 (记录)
pascal 函数调用协定
private 访问类别符 (class)
procedure 声明
program 程序结构
property 声明
protected 访问类别符 (类)
public 访问类别符 (类)
published 访问类别符 (类)
raise 语句 (异常处理)
read 属性类别符
readonly dispatch 界面类别符
record 类型
register 函数调用协定
reintroduce 函数指令
repeat 语句
requires 程序结构 (控件包)
resident 指令 (函数)
resourcestring类型
safecall 函数调用协定
set 类型
shl 运算符 (数学)
shr 运算符 (数学)
stdcall 函数调用协定
stored 指令 (属性)
string 类型
then 语句 (if)
threadvar 声明
to 语句 (for)
try 语句 (异常处理)
type 声明
unit 单元结构
until 语句
uses 单元结构
var 声明
virtual 指令 (方法)
while 语句
with 语句
write 属性类别符
writeonly dispatch 界面类别符
xor 运算符 (布尔)

 

运算符及其优先级

如果你以前写过程序,那么你已经知道表达式是什么了。

这里我专门讲一下Pascal 运算符的特殊部分:运算符的优先级。

表2.2中按优先级分组列出了Pascal语言的运算符。

与大多数编程语言相反,Pascal语言中and和or运算符的优先级比

关系运算符高。因此,如果你的代码为a < b and c < d,编译器

首先会编译and运算符,由此导致编译出错。为此你应该把每个

< 表达式用小括号括起来: (a < b) and (c < d)。 

同一种运算符用于不同数据类型时它的作用不同。例如,运算符 +

可以计算两个数字的和、连接两个字符串、求两个集合的并集、甚至

给PChar 指针加一个偏移量。然而,你不能象在C语言中那样将两个

字符相加。

另一个特殊的运算符是 div。在Pascal 中,你能用 / 计算两个数字

(实数或整数)的商,而且你总能得到一个实型结果。如果计算两个

整数的商并想要一个整型结果,那么就需要用 div 运算符。

表 2.2: Pascal语言中的运算符及其优先级

单目运算符 (最高优先级)
@取变量或函数的地址(返回一个指针)
not逻辑取反或按位取反
乘除及按位运算符
*相乘或集合交集
/浮点相除
div整数相除
mod取模 (整数相除的余数)
as程序运行阶段类型转换 (RTTI运算符)
and逻辑或按位求和
shl按位左移
shr按位右移
加减运算符
+相加、集合并集、字符串连接或指针增加一个偏移量
-相减、集合差集或指针减少一个偏移量
or逻辑或按位或运算
xor逻辑或按位异或运算
关系及比较运算符(最低优先级)
=判断是否相等
<>判断是否不相等
<判断是否小于
>判断是否大于
<=判断是否小于或等于,或是否是一个集合的子集
>=判断是否大于或等于,或是否是一个集合的父集
in判断是否是集合成员
is判断对象是否类型兼容 (又一个RTTI运算符)

集合运算符

集合运算符包括并(+)、差(-)、交(*)、成员检测(in),及一些关系运算符。要把一个元素添加到集合中,你可以采用集合并运算。下面是一个选择字体的Delphi 例子:

Style := Style + [fsBold];
Style := Style + [fsBold, fsItalic] - [fsUnderline];

另一种方法是利用标准过程Include 和Exclude,它们效率更高(但不能用于控件的集合类型属性,因为只能操纵一个元素):

Include (Style, fsBold);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值