动态创建mdi子窗口的一个问题(20分)

  • 主题发起人 主题发起人 lqxj
  • 开始时间 开始时间
L

lqxj

Unregistered / Unconfirmed
GUEST, unregistred user!
每次执行application.CreateForm就会创建一个相同的子窗口
我想如果该窗口已经存在,就不再创建了,该怎么办呢?分不多了
 
如这样
if not Assigned(RecExeForm) then begin
RecExeForm:=TRecExeForm.Create(Self);
RecExeForm.Show;
end else
RecExeForm.BringToFront;
 
if not assigned(formname) then
begin
Application.CreateForm(Tformname, formname);
try
formname.show;
finally
formname.freeonrelease;
end;
end else
formname.bringtofromt;
 
两个都出了问题,关闭后就打不开了,再打开就提示出错
 
晕,是你的代码有问题呀

在form的close事件里写上
action :=cafree;

在Destroy事件里写上
你的form:= nil
 
诚然如胸台所料
吾之form虽free之,然未等于nil,终成小祸
 
多人接受答案了。
 
后退
顶部