补充说明如下:
在主form的一个按钮按下的事件中,实现如下功能:
语句如下:
procedure TForm1.Button1Click(Sender: TObject);
var i,j,k,ti,tj,tk,yti,ytj,ytk,ltk:integer;
tdwparent,ydwparent,ldwparent:string;
m:char;
tem:Tform1;
begin
modalresult:=mrnone;
if label1.Caption='t' then //团
m:='t';
if label1.Caption='y' then //营
m:='y';
if label1.Caption='l' then //连
m:='l';
if label1.Caption='p' then //排
m:='p';
case m of
't': //团
begin
jisuanrenshu('t',form1);
ti:= strtoint(form1.edit3.text); //团下营的个数
tj:=strtoint(form1.edit4.text); //团下直属连的个数
tk:=strtoint(form1.edit5.text); //团下直属排的个数
tdwparent:=form1.label16.Caption;
for i:=1 to ti do
begin
tem:=Tform1.Create(self);
if tem.ShowModal<>mrok then
begin
tem.ModalResult:=mrcancel;
tem.Free;
close;
// tem.Free;
end
else
begin
jisuanrenshu('y',tem);
tem.Free;
end;
end;
for j:=1 to tj do
begin
tem:=Tform1.Create(self);
if tem.ShowModal<>mrok then
begin
tem.modalresult:=mrcancel;
tem.Free;
close;
// tem.Free;
end
else
begin
jisuanrenshu('l',tem);
tem.Free;
end;
end;
for k:=1 to tk do
begin
tem:=Tform1.Create(self);
if tem.ShowModal<>mrok then
begin
tem.modalresult:=mrcancel;
tem.Free;
close;
// tem.Free;
end
else
begin
jisuanrenshu('p',tem);
tem.Free;
end;
end;
end;
'y': //营
begin
ydwparent:=label16.Caption;
ytj:= strtoint(edit3.text); //营下连的个数
ytk:=strtoint(edit4.text); //营下直属排的个数
for j:=1 to ytj do
begin
tem:=Tform1.Create(self);
if tem.ShowModal<>mrok then
begin
modalresult:=mrcancel;
tem.Free;
close;
end
else
begin
jisuanrenshu('l',tem);
tem.Free;
end;
end;
for k:=1 to ytk do
begin
tem:=Tform1.Create(self);
if tem.ShowModal<>mrok then
begin
tem.modalresult:=mrcancel;
tem.Free;
close;
// tem.Free;
end
else
begin
jisuanrenshu('p',tem);
tem.Free;
end;
end;
end;
'l': //连
begin
ldwparent:=label16.Caption;
ltk:=strtoint(edit3.text); //连下排的个数
for k:=1 to ltk do
begin
tem:=Tform1.Create(self);
if tem.ShowModal<>mrok then
begin
modalresult:=mrcancel;
tem.Free;
close;
end
else
begin
jisuanrenshu('p',tem);
tem.Free;
end;
end;
end;
'p': //排
begin
end;
end;
modalresult:=mrok;
end;
tem实际上是本身这个form1动态产生的form
我希望任何一个form按取消后,所有的动态产生的form都释放!
但我的程序只能释放当前的form.不能释放以前产生的form !