我在delphi中创建了MDI窗口程序,想在菜单中打开子窗口,但我在菜单项中用:if Frmsmssendtable=nil then
Frmsmssendtable:=TFrmsmssendtable.Create(Frmsmssendtable);Frmsmssendtable.Show;第一次打开就可以,第二次就出错了,提示说:Frmsmssendtable不是nil.我该怎么办???
Frmsmssendtable:=TFrmsmssendtable.Create(Frmsmssendtable);Frmsmssendtable.Show;第一次打开就可以,第二次就出错了,提示说:Frmsmssendtable不是nil.我该怎么办???
// 在Frmsmssendtable的OnClose事件里面写上;
Action := caFree;
Action := caFree;这样不可以释放窗体吗?
还需要别的吗?
procedure TForm2.ssss1Click(Sender: TObject);
var
form1:tform1;
begin
form1:=tform1.Create(self);
with form1 do
begin
form1.show;
end;
end;在form1中(form1为子窗体)procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Action := caFree ;end;
Class EAbstractError with message 'Abstract Error'
你的这种方法很好,谢谢,不过
当我打开form1,不关闭它时,再打开时,会打开两个form1,我觉得这样不是好,
有什么办法只见程序只打开一个窗口吗?
form1:=nil;
试试
begin
if not FindChildWindow('TFrmsmssendtable') then
Application.CreateForm(TFrmsmssendtable, Frmsmssendtable);
end;
FindChildWindow('TFrmsmssendtable')
这个函数是根据它的参数名字,即某个窗口的名字去判断它是否已经
被打开存在,如果不存在则创建,存在就BringToFront。