我新建了三个窗体,第一个为普通窗体,第二个为MDIFORM窗体,第三个为MDICHILD窗体,在APPLICATION中创建第一个窗体,在第一个窗体按一BUTTON按钮后创建并显示第二个窗体,在第二个窗体中也通过一按钮来创建并显示第三个窗体,问题是在第二个窗体(MDI父窗体)中建立第三个窗体(MDI子窗体)时,提示没有父窗体,创建第三个窗体时CREATE的AOWNER为SELF,即第二个窗体,这是为什么?如何解决?
解决方案 »
- access空字符串相关查询
- 求救一个简单问题,关于用showmodal打开其它窗体出错
- 高分求:邮件发送程序如何设置邮件内容所采用的字符编码集?(急)
- 98系统开发的软件,在xp中运行。当用户使用CTRL+C、CTRL+V复制粘贴时出现乱码!
- 好像delphi比c++编译快很多。和vb接近。为什么?
- 大家好我是一个低水我的代码有错误可是我看不出来希望大家帮助我!!1
- 如何使Form 或 其他对象接受外部的(不是file,是选定的内容)拖动(Drop)事件?(Delphi)
- Dos下我看不到F/G盘
- 查询时怎样让数据在edit中显示出来呢?
- 不使用ClientDataset.applyupdate更新数据,而把Clentdataset.delta作为一个参数传到控制对象的方法updata(data:varient)中为什么只能更新一次
- !!急急: 一个三层的程序,db:oralce, 客户端clientdataset在进行filter汉字时,总是报错EDBClient with message"type mismatch in e
- 哪里有Indy的Demo下载啊?
application.CreateForm(tform6,form6);
然后将第二、三窗口的名称在“Auto-Create Forms”列表中
搬移到右边的列表就没有问题了!
=========================================================
因为,你运行的主窗口试一般的窗口,而次窗口列表中有MDI主窗口
这样要求系统同时生成这两个窗口试会发生冲突!
使用动态产生的窗口变量来显示会好点
==================================
Var f:TForm;
...
f:=fMDICHILD.Create(Self);
f.Show;
...
Address 00000000'.
我的情况和他的不一样,例如我做一个进销存系统,主窗体列出各个模块如基本信息管理,库存管理,进货管理等,主窗体为普通窗体,库存管理模块中主窗体为MDI父窗体,对于库存管理的一些操作则通过子窗体来操作;在主窗体中点击库存管理后,生成库存管理的MDI父窗体,同时隐藏主窗体,库存管理的操作结束后,关闭库存管理的父窗体,同时显示主窗体,再进行其他模块的操作,主窗体一直不释放,直到整个程序结束.
Application.Initialize;
Application.CreateForm(TForm1, Form1);
Application.Run;
end.form1: //form1.FormStyle: fsNormal
implementation
uses unit2;
{$R *.dfm}procedure TForm1.Button1Click(Sender: TObject);
begin
Form2:=TForm2.Create(self);
form2.Show;
end;form2: // FormStyle: fsMDIForm
implementation
uses unit3;
{$R *.dfm}procedure TForm2.Button1Click(Sender: TObject);
begin
Form3:=TForm3.Create(Self);
form3.Show;end;Form3: //FormStyle: fsMDIChild
implementation{$R *.dfm}procedure TForm3.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Action:=caFree;
end;