没有合适的资源?快使用搜索试试~ 我知道了~
Object Pascal参考手册 PDF
需积分: 10 7 下载量 196 浏览量
2015-01-25
21:22:31
上传
评论
收藏 927KB PDF 举报
温馨提示


试读
168页
Object Pascal参考手册 PDF 学习Delphi,Pascal开发必备
资源推荐
资源详情
资源评论
















Object Pascal 参考手册
(Ver 0.1)
ezdelphi@hotmail.com

Overview
- 1 -
Overview(概述)
Using object pascal(使用 object pascal)
Object Pascal 是一种高级编译语言,具有强类型(对数据类型的检查非常严格)特性,支持结构化
和面向对象编程。它的优点包括代码的易读性、快速编译,以及支持多个单元文件从而实现模块化编程。
Object Pascal 具有一些特性以支持 Borland 组件框架和 RAD(快速应用程序开发)环境。在很大程
度上,本语言参考的说明和示例假定你使用 Borland 公司的开发工具,如 Delphi 和 Kylix。
绝大多数使用 Borland 开发工具的开发者是在 IDE(集成开发环境)环境下编写代码并进行编译。
Borland 开发工具帮助我们设置工程和源文件的许多细节,比如维护单元的依赖信息。并且,使用这些工
具在程序的组织上还有一些限制,严格说来,这不是 Object Pascal 语言规范的一部分。比如,Borland
开发工具遵循某些文件和程序的命名约定,若你在 IDE 以外编写代码并使用命令行来编译,你可以避开
这些限制。
这些帮助主题假设你在 IDE 环境下工作,并且使用 VCL(可视化组件库)和/或 CLX(跨平台组件
库)创建应用程序。但有时候,Borland 一些特定的规则和 Object Pascal 的通用规则并不相同。
Program organization(程序组织)
Program organization: Overview(概述)
应用程序通常被分成多个源代码模块,我们称它们为单元(unit)。每个程序以一个程序头(heading)
开始,它为程序指定一个名称。在程序头之后是一个可选的 uses 子句,然后是一个由声明和命令语句组
成的块(block)。uses 子句列出了那些链接到程序的单元,这些单元可以被不同的程序共享,并且通常
有自己的 uses 子句。
uses 子句给编译器提供各模块间的依赖信息,因为这些信息是存于模块自身的,所以,Object Pascal
程序不需要 makefile 文件、头文件以及 include 预处理指令(这些概念你可能要参考 C 语言)。每当一个
工程调入 IDE 时,Project Manager 创建一个 makefile,但只有在包含多个工程的工程组中才保存这些文
件。
关于程序结构和依赖关系的更多内容,请参考程序和单元
。
Pascal source files(Pascal 源文件)
编译器期望在以下三种文件中取得 Pascal 源代码:
• 单元源文件 (文件扩展名为 .pas)
• 工程文件 (文件扩展名为 .dpr)
• 包源文件 (文件扩展名为 .dpk)
单元源文件包含程序代码的主要部分,每个程序包含一个工程文件和多个单元文件。工程文件相当

Overview
- 2 -
于传统 Pascal 语言的‘主’程序文件,它把各单元文件组织成一个程序。Borland 开发工具自动为每一
个应用程序维护一个工程文件。
如果从命令行编译一个程序,你可以把所有源代码放在单元文件(.pas)中,但如果用 IDE 创建程
序,则必须有一个工程文件(.dpr)。
包源文件类似于工程文件,但它们用来创建称为包的特殊的动态链接库(DLL)。
关于包的更多信息,请参考动态链接库和包
。
Other files used to build applications(创建程序所需的其它文件)
除了源代码文件,Borland 工具还需要几种非 Pascal 文件来创建程序。它们是自动维护的,包括以
下文件:
• 窗体文件,扩展名为 .dfm(Delphi)或 .xfm(Kylix)
• 资源文件,扩展名为 .res (已经编译的资源文件)
• 工程选项文件,扩展名为 .dof(Delphi)或 .kof(Kylix)
窗体文件或者是一个文本文件,或者是一个编译的资源文件,资源文件能包含位图、字符串等等。
每个窗体文件表示一个窗体,通常对应于程序中的一个窗口或对话框。IDE 允许以文本方式察看和编辑
窗体文件,并且能以文本或二进制格式保存它。虽然默认是以文本方式保存窗体,但通常不要手动编辑
它,更常用的方式是使用 Borland 提供的可视化设计工具。每个工程至少有一个窗体,每个窗体有一个
关联的单元文件(.pas),默认情况下,单元的文件名和窗体文件名相同。
除了窗体文件,每个工程使用一个资源文件(.res)保存位图作为程序的图标。默认情况下,这个
文件和工程文件(.dpr)同名。要改变程序的图标,可使用 Project Options 对话框。
工程选项文件(.dof 或 .kof)包含编译器和链接器设置、搜索路径以及版本信息等等。每个工程对
应一个选项文件,它和工程文件同名。通常情况下,文件中的选项是通过 Project Options 对话框来完成
的。
IDE 中的许多工具保存其它类型的文件。桌面设置文件(.dsk 或 .desk)包含窗口的排列信息及其
它设置项目。桌面设置或者特定于一个工程(和某个工程相关),或者作用于整个环境(environment-wide)
(不是特定于某个工程,对所有工程都有效)。这些文件对编译没有影响。
Compiler-generated files(编译器生成的文件)
在第一次生成一个程序或一个标准 DLL 时,编译器为工程中所使用的每个新单元创建一个编译(过
的)单元文件 .dcu(Windows)或 .dcu/.dpu(Linux)。工程中所有的 .dcu 文件(Windows)或 .dcu/.dpu
文件(Linux)被链接到一个单独的可执行文件或共享库中;当第一次生成一个包时,编译器为包所包含
的每个新单元创建一个 .dcu 文件(Windows)或 .dpu 文件(Linux),然后创建 .dcp 文件和包文件(关
于库和包的更多信息,请参考库和包
)。若使用 –GD 开关,链接器生成一个 map 文件和 .drc 文件,.drc
文件包含字符串资源,能被编译进资源文件中。
当重新生成一个工程(程序、库或者包)时,除非自上次编译后单元文件(.pas)发生了改变、或
者没发现 .dcu 文件(Windows)和 .dcu/.dpu 文件(Linux)、或者明确告诉编译器重新编译它,否则,
单元文件不会被重新编译。实际上,只要编译器能找到编译(过的)单元文件(.dcu 或 .dpu),单元源
文件不是必需的。

Overview
- 3 -
Example programs(实例程序)
About example programs(关于实例程序)
下面的实例演示 Object Pascal 编程的基本特点,它们是一些简单的 Object Pascal 程序,不能在 IDE
下编译,你可以从命令行编译它们。
A simple console application(一个简单的控制台程序)
下面是一个简单的控制台程序,你可以从命令行编译并运行它。
program Greeting;
{$APPTYPE CONSOLE}
var MyMessage: string;
begin
MyMessage := 'Hello world!';
Writeln(MyMessage);
end.
第一行声明程序叫做 Greeting;{$APPTYPE CONSOLE} 指示字告诉编译器,这是一个控制
台程序,它要从命令行运行;接下来的一行声明了一个变量 MyMessage,它存储一个字符串(Object
Pascal 包含真正的字符串类型)。程序把字符串 ”Hello world!” 赋给变量 MyMessage,然后使用
Writeln 例程把 MyMessage 的内容送到标准输出设备(Writeln 在 System 单元声明,编译器在每个
程序中自动包含这个单元)。
你可以把这个程序(源代码)输入到一个叫 Greeting.pas 或 Greeting.dpr 的文件中,然后在控
制台输入如下命令编译它:
对于 Delphi:DCC32 Greeting
对于 Kylix:dcc Greeting
执行的结果是输出信息 ”Hello world!”。
除了简单,上面这个例子和我们在 Borland 开发工具下写的程序有几个重要的不同:首先,这是一
个控制台程序,Borland 开发工具通常创建图形界面的程序,因此,你不大可能调用 Writeln(GUI 程序
不能调用 Writeln);而且,整个程序只有一个文件。在一个典型的程序中,程序头,也就是例子中的第
一行,将被放在一个单独的工程文件中。工程文件通常不包含实际的程序逻辑,而只是调用在单元文件
中定义的方法。
A more complicated example(一个稍微复杂的程序)
下面的实例程序被分成两个文件:一个工程文件,一个单元文件。工程文件可以存为 Greeting.dpr,
它看起来这样:

Overview
- 4 -
program Greeting;
{$APPTYPE CONSOLE}
uses Unit1;
begin
PrintMessage('Hello World!');
end.
第一行声明程序叫做 Greeting,它同样是个控制台程序。uses Unit1; 子句告诉编译器,Greeting
包含(引用)一个叫做 Unit1 的单元。最后,程序调用 PrintMessage 过程,并把字符串 ”Hello world!”
传递给它。请注意,PrintMessage 过程是从哪里来的?它是在 Unit1 单元定义的。下面是 Unit1 单元
的源代码,你能把它保存在一个叫 Unit1.pas 的文件中:
unit Unit1;
interface
procedure PrintMessage(msg: string);
implementation
procedure PrintMessage(msg: string);
begin
Writeln(msg);
end;
end.
Unit1 单元定义一个叫做 PrintMessage 的过程,它接收一个字符串作为参数,并把它送到标准输
出设备(在 Pascal 中,没有返回值的例程叫过程,有返回值的例程叫函数)。请注意,PrintMessage
在 Unit1 中声明了两次,第一次是在关键字 interface 的下面,这使得它对于引用 Unit1 单元的其它
模块(比如 Greeting)是可用的;第二次声明是在关键字 implementation 的下面,它实际定义
PrintMessage 过程。
现在你可以在控制台输入如下命令编译 Greeting。
对于 Delphi:DCC32 Greeting
对于 Kylix:dcc Greeting
没必要在命令行参数中包含 Unit1。当编译器处理 Greeting.dpr 时,它自动查找 Greeting 程序
所依赖(引用)的单元文件。程序的执行结果和前面的实例相同,它输出信息 ”Hello world!”。
A native application(在 IDE 下设计程序)
我们的下一个实例程序是在 IDE 下用 VCL 或 CLX 组件生成的,它使用自动产生的窗体文件和资源
文件,因此,你不能仅仅使用源代码来编译它。它阐明了 Object Pascal 的重要特点。除包含多个单元外,
这个程序还使用了类和对象
。
剩余167页未读,继续阅读
资源评论


gjkxc
- 粉丝: 1
- 资源: 6
上传资源 快速赚钱
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


安全验证
文档复制为VIP权益,开通VIP直接复制
