unit Unit1;interfaceuses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls;type
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;var
Form1: TForm1;implementation{$R *.DFM}procedure TForm1.Button1Click(Sender: TObject);
var x,y,z
:integer;
begin
y:=0;
x:=1;
try
z:=x div y;
except on errorinstance:edivbyzero do
messagedlg(errorinstance.message,mtinformation,[mbok],0);
end;end;end.
运行后,怎么没有信息弹出啊?
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls;type
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;var
Form1: TForm1;implementation{$R *.DFM}procedure TForm1.Button1Click(Sender: TObject);
var x,y,z
:integer;
begin
y:=0;
x:=1;
try
z:=x div y;
except on errorinstance:edivbyzero do
messagedlg(errorinstance.message,mtinformation,[mbok],0);
end;end;end.
运行后,怎么没有信息弹出啊?
你在最后加一句showmessage(inttostr(z))试试
有一变量没有用过就不执行后面的语句了么?
算出来z,并没有用到,为什么要算?
其实,你编译完了以后,可以看见z:x div y这一句的左边没有小蓝点,表示这一句不会执行。
var
x,y,z :integer;
begin
y:=0;
x:=1;
try
z:=x div y;
except on errorinstance:edivbyzero do
messagedlg(errorinstance.message,mtinformation,[mbok],0);
end;
showmessage(inttostr(z));
end;
var x,y,z
:integer;
begin
try
x:=0;
y:=1;
z:=y div x;
except on errorinstance :edivbyzero do
begin
messagedlg('='+errorinstance.message,mtinformation,[mbok],0);
z:=1;
end;
end;
var
x,y,z :integer;
begin
y:=0;
x:=1;
try
z:=x div y;
Form1.Tag:=z;
except on errorinstance:edivbyzero do
messagedlg(errorinstance.message,mtinformation,[mbok],0);
end;
end;
我运行你的程序不会关闭窗体。
而且,你在do 语句后面再加上z:=1;没有用啊。z还是没有用处。
z:=x div y还是不会执行。