ObjectPascal语⾔基础
Delphi 是以 Object Pascal 语⾔为基础的可视化开发⼯具,虽然两者之间有着很⼤区别,但是要学好 Delphi,⾸先要掌握的就是 Object Pascal 语⾔。
Object Pascal语⾔编写环境
如何使⽤Delphi编写Object Pascal 程序。⼀般来说,使⽤ Delphi 开发出来的程序有以下 3 种。
1.图形界⾯程序
图形界⾯程序是⽬前Windows 平台最常见的应⽤程序,这些程序通过窗体和对话框与⽤户进⾏信息交互,实现⼀定的功能。例如Microsoft 公司的Office 系列软件和正在使⽤的Delphi 等,它们都是图形界⾯程序。
2.控制台程序
控制台程序是指⼀些没有图形⽤户界⾯的32 位Windows应⽤程序,类似在DOS 环境下运⾏的程序。这些程序很少要求⽤户输⼊⼤量的信息,⼀般只实现特定的功能。控制台程序的代码较⼩,占⽤的系统资源少,因此编译、链接的速度⽐较快。
3.服务器程序
服务器程序可以接受和处理客户应⽤程序的请求,并将结果信息返回给客户应⽤程序。服务器应⽤程序⼀般在后台运⾏,不需要⼤量的⼈机交互信息。
下⾯以开发⼀个简单的控制台程序为例,向读者介绍Delphi 中⽣成Object Pascal 程序的基本⽅法,并对Object Pascal 程序的⼀般结构进⾏简单说明。
在Delphi集成开发环境中,依次选择“File”? “New”?“Other”菜单项打开“New Items”对话框。选中“New”标签页中的“Console Application”选项,单击“OK”按钮,代码编辑器中将⾃动打开⼀个初始名为Project1.dpr的控制台程序。请将Project1.dpr ⽂件修改为如下内容:
program
Project1;
{$APPTYPE
CONSOLE}
//uses
SysUtils;
var
str:string;
begin
// Insert user code here
writeln(’您好,这是⼀个⽰范程序,请输⼊⼀⾏⽂字:’);
readln(str);
writeln(’您输⼊的是:’,str);
readln;
end.
依次选择“File”? “Save
All”菜单项可以将更改后的⼯程⽂件保存到指定的⽂件夹中。本章后⾯的例⼦都可以在该⼯程的基础上⽅便地实现。
按F9键进⼊编译、链接、运⾏程序。待程序提⽰“您好,这是⼀个⽰范程序,请输⼊⼀⾏⽂字:” ⽂字后,⽤户可以输⼊⼀些内容,例如输
⼊“早上好!”,程序将输出结果:“您输⼊的是:早上好!”。
以下是对该程序的⼏点说明:
[if !supportLists]· [endif]程序第2 ⾏中{$APPTYPE
CONSOLE}是⼀个编译器指令,它告诉编译器这个程序是⼀个控制台程序。
[if !supportLists]· [endif]uses SysUtils 语句前加了两个斜线,将这条语句以注释语句的形式屏蔽掉了,因为在这个例⼦中是不需要SysUtils 单元的。
[if !supportLists]· [endif]writeln 和readln两个函数分别表⽰输出和输⼊⼀⾏字符。程序最后的readln 语句是为了锁定窗⼝,否则输出结果将很快消失。
注释语句
作为起点,⾸先介绍如何在Object Pascal 代码中添加注释。如果不给程序加上适当的注释,⼀段时间后就很难理清程序的流程。同时编译器会将注解忽略,不会影响程序的编译与运⾏。
Object Pascal 中有3 种类型的注释。
花括号注释:组合符号“{”和“}”的成对使⽤。——{……}
圆括号/星号注释:组合符号“(*”和“*)”的成对使⽤。——(*……*)
Visual C++风格的双斜杠注释:符号“//”的单独使⽤。——//……
注意,相同类型的注释不要嵌套使⽤。虽然不同类型的注释进⾏嵌套在语法上是合法的,但不建议这样做。
标识符
Object Pascal 语⾔使⽤的标识符包括字母 A~Z、a~z、数字 0~9 及其他⼀些标准字符。
Object Pascal 语⾔的特殊符号
$ & * # � ( ) [ ] { } ^ ; : @ < = > , . ? + /
Object Pascal 语⾔的单个的特殊符号
(* *) (. .) .. // := <> >= <=
在 Object Pascal 语⾔中,标识符⽤来标识变量、常量、属性、类、对象、过程、函数、程序、组件库等。标识符可以由任意长度不带空格的字符串组成,但对于编译器来讲只有前⾯
255 个字符有效。其中,标识符的第 1 个字符必须是字母或下划线,其余字符可以是字母、数字或下划线。通常,标识符由⼀个或多个具有适当意义的英⽂单词组成。Object Pascal 语⾔对区分字母的⼤⼩写是不敏感的。
保留字和指令字
Object Pascal 还定义了 39 个指令字,它们具有特殊含义。但是,在⽤户重新定义了指令字后,在作⽤域内它们就失去了原来的意义。
其中Private、Protected、Public、Published、Automated、On 和At是指令字,但是,应当视其为保留字,不要定义和它们同名的标识符。
在 Delphi 集成开发环境的代码编辑器中,保留字和指令字以⿊体显⽰,这样就⼤⼤⽅便了⽤户的使⽤,不必担⼼因为不⼩⼼⽽错误地将保留字或指令字定义为标识符。
数据类型与定义变量
传递给过程或函数的参数值必须与形参的类型⼀致。变量是程序代码中代表⼀个内存地址的标识符,那么该地址的内存内容就可以在程序代码执⾏时被改变。每个变量都有⼀个名字和数据类型,名字可以⽤来引⽤变量,数据类型决定变量的取值范围。
1.数据类型概论
Object Pascal 语⾔提供了⾮常丰富的数据类型,即简单类型(Simple)、字符串类型(String)、结构类型(Struct)、指针类型(Pointer)、函数和过程类型(Procedural)和变体类型(Variant)等。
(1)简单类型(Simple)
简单类型包括实数类型(Real)和有序类型(Ordinal)。有序类型⼜包括整数类型、字符类型、布尔类型、枚举类型和⼦界类型等。
① 整数类型;包括的类型:
Integer -2 147 483 648~2147 483 647
Cardinal 0~42 994 967 295
Shortint -128~127
Smallint -32 768~32 767
Longint -2 147 443 648~2 147 483 647
Int64 -2 ~2 -1
Byte 0~255
Word 0~65 535
Longword 0~4 294 967 295
②字符类型;;字符类型有 3 种字符变量:
AnsiChar 8 位 根据扩展 ANSI 字符表排列
WideChar 16 位 根据 Unicode 码排列,前 256个 Unicode 字符同 ANSI 字符相同
Char Delpi 中通⽤的字符类型,相当于WideChar
注意:因为⼀个字符在长度上并不表⽰⼀个字节,如果程序中必须⽤到字符的字节数,最好⽤ SizeOf()函数获取。
③布尔类型
布尔类型包括4种,分别为Boolean、ByteBool、WordBool 和LongBool。Boolean和ByteBool 各占⽤⼀个字节,WordBool 占⽤两个字节,LongBool 占⽤4 个字节。
Boolean的值只能是0(False)或1(True),ByteBool、WordBool 和LongBool 可以是有符号的整数,为0 值代表False,⾮0值代表True。
最常⽤的是Boolean 类型,⽽ByteBool、WordBool 和LongBool 类型是为了与其他语⾔和Windows 环境兼容,因为Windows 的API 在返回⼀个布尔值时,其值可能是⼀个两字节的有符号整数。如果试图把返回值赋给Boolean 类型的数据,编译器认为类型不匹配,若是进⾏类型强制转换,可能使返回值的有效数据被截断。
④枚举类型
枚举类型是由⼀组有序的标识符组成的,它列出了所有这种类型可以包括的值。例如⼀个星期有7 天,程序中分别⽤ 0、1、2、3、4、5、6 来表⽰⼀个星期的每⼀天,但在程序中很不直观。
type //变量名=(枚举列表)
DayOfWeek=(Sunday,Monday,Tuesday,Wednesday,Thursday,Friday,Saturday);
为了引⽤此枚举类型,必须声明⼀个DayOfWeek 类型的变量,例如:
var
Days:DayOfWeek;
这样就声明了⼀个DayOfWeek类型的枚举变量Days,Days 的值总是标识符列表中的⼀个。
pascal语言还有人用吗为了简化程序,还可以将类型声明和变量声明合⼆为⼀,例如:
var
Days:(Sunday,Monday,Tuesday,Wednesday,Thursday,Friday,Saturday);
注意:枚举的元素只能是标识符,标识符的命名规则必须符合Objec t Pa sc a l 关于标识符的规定。例如不能以数字打头,标识符不能是保留字,同⼀个枚举元素不能同时出现在多个枚举中。
⑤⼦界类型
⼦界类型是下列类型中某范围内的值,即整型、布尔型、字符型或枚举型。如果需要限制⼀个变量的取值范围时,⼦界类型是⼀个好的选择。
⑥实型
实型不是有序类型,因为它的值域是⽆限的,实型的数据也叫实数,实型⽤于表⽰通常所说的浮点数。Object Pascal 语⾔中的实数数据(Real)类型
Real48 Single Double Extended Comp Currency Real。
常⽤的实数类型是 Real、Single、Double。
(2)字符串类型(String)
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论