我到现在居然还不会最基本的弹出窗体,,,我新建了一个MDI项目,然后主页面设为了fsMDIForm,然后在主页面上加了一个MainMenu,在菜单里面添加了单击事件,弹出窗体,,我新建的这个窗体设为了fsMDIChild形式,结果运行时问题就出现了,,,点菜单项却弹不出窗体,,,我又新加了一个按钮实现同样的功能却也不行,然后我把这个要弹出的窗体放在AUTO-CREATE FORMS里面, 运行时还是不显示,,,后来我把这个窗体设为了fsStayOnTop,就好使了,,这是为什么呢,,我单位原来的项目子窗体都是设为fsMDIChild形式的,为什么我的却不好使呢,我错在哪了呢???大家能给我讲讲吗???还有,为什么我弹出窗体时只写一条Application.CreateForm(Tpage1Form,page1Form);就行,而你书上写的Application.CreateForm(Tpage1Form,page1Form);
page1Form.Show;
page1Form.Free;
反而会不好使,不是显示,cannot make a visible windows modal 就是弹出的窗体时闪一下就没有了呢?
page1Form.Show;
page1Form.Free;
反而会不好使,不是显示,cannot make a visible windows modal 就是弹出的窗体时闪一下就没有了呢?
frmChild.show;frmChild窗体onClose事件里写: Action := caFree;
=====================================
这是在改成fsStayOnTop之前去掉了
------------------------------------------------------
frmChild窗体onClose事件里写: Action := caFree;
=======================================
这个也有
------------------------------------------------------
frmChild := TfrmChild.create(self);
frmChild.show;
=======================================
这个语句的意思不太明白
===================================== //既然已经去掉了,系统不会帮你创建,那么,请看下面
这是在改成fsStayOnTop之前去掉了
------------------------------------------------------
frmChild窗体onClose事件里写: Action := caFree;
=======================================
这个也有
------------------------------------------------------
frmChild := TfrmChild.create(self); //这个就是你点击菜单的时候手工的创建窗体,并显示
frmChild.show;
=======================================
这个语句的意思不太明白
begin
page1Form := Tpage1Form.create(self);
page1Form.show;
end;改成这样了还是不好使啊
我现在最简单的
新建一个项目:
把form1的FormStyle设为fsMDIForm;
增加一个新窗体form2
把form2的FormStyle设为fsMDIChild;F9运行,一切OK
procedure TmaindelForm.Button1Click(Sender: TObject);
begin
page1Form := Tpage1Form.create(self);
page1Form.Parent := Panel1; //显示在那个容器里面!
page1Form.show;
end;
MDI子窗口不能ShowModal;(至少我知道的是这样)
然后在MDI窗口的ONCLOSE写Action := caFree;
你show之后马上就free掉,当然一闪就没了...