一个更复杂的例子
接下来展示的一个程序例子,被分割到了2个文件。一个工程文件,一个单元文件。你可以将工程文件保存为greeting.dpr,它看起来是这样的:
program greeting;
{$APPTYPE CONSOLE}
uses Unit1;
begin
PrintMessage('Hello World!');
end.
第一行说明了程序名称为greeting,又是一个控制台应用程序。
uses Unit1;这句告诉编译器,这个程序依靠一个命名为Unit1的单元文件。最后这个程序盗用PrintMessage过程,传递给他一个字符串“hello world!”,PrintMessage被定义在Unit1文件中。
这是until的源代码,必须被保存在一个命名为Unit1.pas的文件中。
unit Unit1;
interface
procedure PrintMessage(msg: string);
implementation;
procedure PrintMessage(msg: string);
begin
Writeln(msg);
end;
end.
Unit1 定义了一个被称为PrintMessage的过程。输入一个字符串的变量,并显示这个变量到标准输出窗口。(在delphi中,不返回值的程序被程为过程。又返回值的程序被称为函数。)注意,PrintMessage在Unit1
中被定义了2次。第一次定义,在关键词interface之后,使PrintMessage在用到Unit1的其他模块中有效。第2次定义,在关键词implementation之后,实现了PrintMessage的定义。
你现在从命令行中输入并编译Greeting
dcc32 greeting
去产生一个win32的可执行文件,或则
dccil greeting
去产生一个.net下的可执行文件。
在命令行中不需要包含Unit1。当编译器产生greeting.dpr,就可以自动的找到greeting程序所依靠的单元文件。结果和第一个例子相同:打印消息Hello world!
posted on 2004-12-