delphi 语法4

利用程序中止例程可以使得一个正常的运行的程序强行中止。程序中止的结果有两 种,一是仅仅只退出当前正在运行的语句,但不一定会退出整个程序;二是直接退出整个

- 69 -

程序。

Delphi 常用的程序中止方法有三种:使用 Exit 例程、使用 Halt 例程、调用全局程序 对象的 Terminate 方法。

  1. Exit 例程

Exit 声明于 Delphi 的标准 System 单元,其声明原型为:

  procedure Exit;                                                                                                             Exit 用于退出当前正在执行的程序块,当不会退出整个程序,除非将 Exit 用在了程序的 主程序块(即.dpr 文件中的程序块)中。下面的程序演示了 Exit 例程的用法:

procedure M1; begin

exit; writeln('M1');

end;

begin

writeln('Start    Program'); M1;

writeln('Ending  Program');

//Exit; readln;

end. 运行后的结果为:

Start  Program Ending Program

若读者将例中的注释语句去掉注释符号后再运行程序时就会发现,程序执行后的窗口一闪

而过,根本不会停留在屏幕上。

在使用  try...finally...类型的异常处理语句时,在  try...finally  部分中执行的 exit  会被当成一个异常来处理。详见”异常处理“部分。

自 Delphi2009 开始,Exit 后可接一个参数以传递函数退出时所返回的结果。这种应 用必须满足两个条件:

1.    后接参数的 Exit 只能用于函数中

2.    参数的类型必须与函数的返回值的类型相同或兼容 下面的程序说明了这种用法:

function DoSomething(aInteger: integer): string; begin

if aInteger < 0 then Exit('Negative');

else

Result :=   'Positive'; end;

- 70 -

var

i: integer; begin

writeln(DoSomething(-1)); readln;

end.

例中定义了函数 DoSomething,它接受一个 Integer 类型的参数。当传给 DoSomething 的 参数的值小于 0 时,函数会返回一个字符串'Negative'并退出。

通过上面的例子我们可以发现,接参数的 Exit 事实相当于将两条语句简化成了一条。 如上例中的 Exit('Negative')相当于以下的复合语句:

begin

Result :=   'Negative'; Exit;

end;

  1. Halt 例程

与 Exit 不同,Halt 会引发一个异常中断并通过这个中断直接退出整个的程序。 System 单元中 Halt 的声明原型为:

  procedure     Halt([ExitCode:Integer]);                                                                     Halt 后可接一个 Integer 类型的标识码用于标识程序退出的相关信息。这个标识可以省 略,省略时编译默认其值为 0。

Halt 会直接退出整个程序。这句话的意思是:不管在何种地方,以何种形式,只要调 用了 Halt 就会退出整个的程序。请看下面的示例:

uses

SysUtils,  Dialogs; procedure M1;

begin

Halt; end;

procedure M2; begin

Writeln('M2'); M1;

end;

begin

ShowMessage('Starting   Program'); M2;

ShowMessage('Ending Program'); end.

程序中调用了  M2,这会导致程序的中断。

- 71 -

  1. Terminate 方法

Delphi  中的窗体程序中含有一个全局程序对象(一般是  Application),其中的 Terminate 方法可在窗体程序的任何地方使程序正常中断并退出:

procedure TForm1.Button1Click(Sender: TObject); begin

Application.Terminate; showmessage('');

end;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值