在两个单元文件中创建了两个窗体,但这两个次创建是同一个窗体。
现在在问题是我把这两个一样的窗体关闭就出错。怎么样解决呢?
main.pas
procedure Tmain_window.SpeedButton2Click(Sender: TObject);
beginif mer_i=2 then //判断是否创建mer_window窗体
begin
(Sender as TSpeedButton).Tag:=0;
end;if (Sender as TSpeedButton).Tag=0 then
begin
mer_window:=Tmer_window.Create(self);
//Application.CreateForm(Tmer_window, mer_window);
mer_window.Width:=screen.Width-12; //设定宽度
mer_window.Height:=screen.Height-81-78; //设定高度
mer_window.Left:=0; //显示位子
mer_window.Top:=0;
(Sender as TSpeedButton).Tag := Integer(mer_window);
//mer_chuangjian:=2;
end
else
begin
mer_window:=Pointer((Sender as TSpeedButton).Tag);
end;
mer_i:=1; //初值
end;procedure Tmer_window.FormClose(Sender: TObject; var Action: TCloseAction);
begin
mer_i:=2; //关闭是赋值,下次创建mer_window用到
mer_window.Free; //窗体关闭
end;com.pas
procedure Tcom_window.DBGrid1DblClick(Sender: TObject);
begin
if mer_i=2 then //判断是否创建mer_window窗体
begin
(Sender as TDBGrid).Tag:=0;
end;if (Sender as TDBGrid).Tag=0 then
begin
//mer_window:=Tmer_window.Create(self);
Application.CreateForm(Tmer_window, mer_window);
mer_window.Width:=screen.Width-12; //设定宽度
mer_window.Height:=screen.Height-81-78; //设定高度
mer_window.Left:=0; //显示位子
mer_window.Top:=0;
showmessage(inttostr((Sender as TDBGrid).Tag));
(Sender as TDBGrid).Tag := Integer(mer_window);
mer_chuangjian:=1;
end
else
begin
mer_window:=Pointer((Sender as TDBGrid).Tag);
end;
mer_i:=1; //初值end;
现在在问题是我把这两个一样的窗体关闭就出错。怎么样解决呢?
main.pas
procedure Tmain_window.SpeedButton2Click(Sender: TObject);
beginif mer_i=2 then //判断是否创建mer_window窗体
begin
(Sender as TSpeedButton).Tag:=0;
end;if (Sender as TSpeedButton).Tag=0 then
begin
mer_window:=Tmer_window.Create(self);
//Application.CreateForm(Tmer_window, mer_window);
mer_window.Width:=screen.Width-12; //设定宽度
mer_window.Height:=screen.Height-81-78; //设定高度
mer_window.Left:=0; //显示位子
mer_window.Top:=0;
(Sender as TSpeedButton).Tag := Integer(mer_window);
//mer_chuangjian:=2;
end
else
begin
mer_window:=Pointer((Sender as TSpeedButton).Tag);
end;
mer_i:=1; //初值
end;procedure Tmer_window.FormClose(Sender: TObject; var Action: TCloseAction);
begin
mer_i:=2; //关闭是赋值,下次创建mer_window用到
mer_window.Free; //窗体关闭
end;com.pas
procedure Tcom_window.DBGrid1DblClick(Sender: TObject);
begin
if mer_i=2 then //判断是否创建mer_window窗体
begin
(Sender as TDBGrid).Tag:=0;
end;if (Sender as TDBGrid).Tag=0 then
begin
//mer_window:=Tmer_window.Create(self);
Application.CreateForm(Tmer_window, mer_window);
mer_window.Width:=screen.Width-12; //设定宽度
mer_window.Height:=screen.Height-81-78; //设定高度
mer_window.Left:=0; //显示位子
mer_window.Top:=0;
showmessage(inttostr((Sender as TDBGrid).Tag));
(Sender as TDBGrid).Tag := Integer(mer_window);
mer_chuangjian:=1;
end
else
begin
mer_window:=Pointer((Sender as TDBGrid).Tag);
end;
mer_i:=1; //初值end;
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货