Object Pascal 手册,Delphi 11 编程语言的完整介绍 作者: Marco Cantu 译者:豆豆爸
第1章 用 Pascal 编程
本章首先介绍Object Pascal 应用程序的部分构成要素,包括编写代码的标准方法和相关注释,介绍关键字和程序的结构。在一开始,我将编写一些简单的应用程序,并解释这些程序的作用,从而引入其他一些关键概念,这些概念将在以后的章节中详细介绍。
1.1 从代码开始(创建delphi程序的两种方式)
本章涵盖了语言的基础知识,但我还需要用几章的篇幅来让你了解一个完整可工作的应用程序的细节。因此,现在我们先来看两个简单的程序(它们的结构不同),不会涉及太多细节。在这里,我只想向你展示程序的结构,在介绍语言的所有各种元素之前,我将用这些结构来编写示例以解释具体的语言构成。考虑到我希望你能尽快将书中的信息付诸实践,建议你最好从头开始阅读示例。
Object Pascal 语言被设计为与集成开发环境(简称 IDE)协同工作。正是通过这种强大的组合,Object Pascal 既能达到程序员友好型语言的开发速度,又能达到机器友好型语言的运行速度。
集成开发环境可以让你设计用户界面,帮助你编写代码,运行程序等。在本书中,我将一直使用集成开发环境来向你介绍Object Pascal 语言。
1.1.1 第一个控制台应用程序
首先,我将向你展示一个简单的Hello, World
控制台应用程序的代码,它展示了 Object Pascal 程序的一些构成元素。控制台应用程序是一种没有图形用户界面的程序,只能显示文本和接受键盘输入,一般通过操作系统控制台或命令提示符执行。一般来说,控制台应用程序在移动平台上意义不大,但在 Windows 上仍在使用(微软最近花大力气改进了 cmd.exe、PowerShell 和终端访问)。此外,控制台应用程序在 Linux 上也相当流行。
我暂时不会解释下面代码中不同元素的含义,因为这是本书前面几章的目的,下面是 HelloConsole 示例中的代码:
program HelloConsole;
{$APPTYPE CONSOLE}
var
StrMessage: string;
begin
StrMessage := 'Hello, World';
Writeln(StrMessage);
// 等待按下Enter键
Readln;
end.
注解:正如前言中所述,本书中所有示例的完整源代码都可以在 GitHub 上的在线仓库中找到。有关如何获取这些示例的详细信息,请参阅本书前言。在文中,我提到了项目名称(在本例中为
HelloConsole
),它也是包含示例中各种文件的文件夹的名称。项目文件夹按章节分组,因此你可以在01/HelloConsole
下找到第一个示例。
你在第一行可以看到程序名称,之后是一个编译指令的声明(以 $ 符号为前缀并用大括号括起来)、变量声明(带有给定名称的字符串)以及主 begin-end 代码块中的三行代码和注释。这三行代码将一个值复制到字符串中,调用一个系统函数将该行文本写入控制台,并调用另一个系统函数读取一行用户输入(或者在本例中等待用户按下回车键)。我们将看到,你可以定义自己的函数,Object Pascal
也提供了数百个预定义函数。
话说回来,我们很快就会介绍所有这些内容,因为最初的这一部分只是为了让你了解一个小而完整的 Pascal 程序是什么样的。当然,你可以打开并运行这个程序,它将产生如下输出结果(实际的 Windows 版本如图 1.1 所示)。
Hello, World
图1.1: HelloConsole示例在Windows上运行的输出
1.1.2 第一个可视化应用程序
不过,现代应用程序很少是这种老式的控制台程序,而通常是由显示在窗口(或称为窗体)中的可视化元素(称为控件)组成的。在本书的大多数例子中,我将使用 FireMonkey
库(也称为 FMX
)来构建可视化示例(即使在大多数情况下它们只是显示简单的文本)。
注解: 在
Delphi
中,可视化控件有两种类型:VCL
(适用于 Windows 的可视化组件库)和FireMonkey
(适用于所有支持平台的多设备库,包括桌面平台和移动平台)。在任何情况下,将演示改编为 Windows 专用的 VCL 库都非常简单。
要理解可视化应用程序的确切结构,您必须阅读本书的大部分内容,因为窗体是给定类的对象,并且具有方法、事件处理程序和属性…所有这些功能都需要花点时间去了解。不过,要创建这些应用程序,你并不需要成为专家,因为你所要做的就是使用菜单命令创建一个新的桌面或移动应用程序。在本书的第一部分,我的示例将基于FireMonkey
平台,并简单地使用窗体和按钮单击操作的上下文。首先,您可以创建任何类型的窗体(桌面或移动的,我通常会选择多设备“空白”应用程序,因为它也可以在Windows上运行),并在其上放置一个按钮控件,在其下方放置一个多行文本控件(Memo)以显示输出。
图 1.2 显示了在 Delphi IDE 中选择 Android 风格预览(见设计界面上方的组合框)并添加单个控件(按钮)后的移动应用程序窗体。
图 1.2:带有一个按钮的简单移动应用程序, HelloVisual
示例
要创建类似的应用程序,您需要向空窗体中添加一个按钮。现在添加实际代码,这是我们现在唯一感兴趣的内容,双击按钮,您将看到以下代码框架:
procedure TForm1.Button1Click(Sender: TObject)
begin
end;
即使您不知道类的方法是什么(这里就是Button1Click是什么),您也可以在该代码片段中(即在begin和end关键字之间)键入一些内容,当您按下按钮时,该代码将执行。
我们的第一个“可视”程序的代码与第一个控制台应用程序的代码相匹配,只是上下文不同,调用的是不同的库函数,即ShowMessage
全局函数,用于在消息框中显示一些字符串。这是您可以在HelloVisual
示例中找到的代码,您可以尝试轻松地从头开始重新构建它:
procedure TForm1.Button1Click(Sender: TObject)
var
StrMessage: string;
begin
StrMessage := 'Hello, World';
ShowMessage(StrMessage);
end;
请注意,您需要在begin语句之前放置StrMessage
变量的声明,并在之后放置实际的代码。同样,如果对这些内容不清楚,请不要担心,在适当的时间一切都会详细介绍。
注解:您可以在该章节的01容器下的文件夹中找到此示例的源代码。在这种情况下,有一个类似于示例的项目文件名称,但还有一个在项目名称之后添加了“Form”一词的次要单元文件。这是我在本书中将要遵循的标准。项目的结构将在本章末尾介绍。
在图1.3中,您可以看到这个简单程序的输出,它在启用了FMX MobilePreview
模式的Windows上运行(您还可以在Android、iOS和macOS上运行此示例,但这需要在IDE中进行一些额外的配置)。
注解:
FireMonkey Mobile Preview
使Windows应用程序看起来有点像移动应用程序。我在本书的大多数示例中启用了此模式。这是通过在项目源代码中添加对MobilePreview
单元的uses语句来完成的。
现在我们了解编写和测试Delphi程序的方法,让我们回到原点,讲解应用程序的前几个构成块的所有细节,就像我在本章开头所承诺的那样。您需要知道的第一件事是如何阅读程序,各个元素是如何编写的,以及我们刚刚构建的应用程序的结构(其中包含PAS文件和DPR文件)。图1.3显示了在Windows上运行的这个简单程序的输出,启用了FMX MobilePreview
模式(您也可以在Android、iOS和macOS上运行此示例,但这需要在IDE中进行一些额外的配置)。