【高分求救!!急】子窗体关闭导致应用程序退出

请问321 2013-03-19 11:40:48
C++Builder6.0

Form1为主窗体
Form2为子窗体;

点击Form1上的按钮后:
if (NULL == Form2){
Form2= new TForm2(this);
}
Form2->Parent = Form1;

Form2关闭中:
//Form2->Parent = NULL;
此句加了重新点击按钮打不开;
不加直接全部关闭应用程序,提示:Abnormal program termination

Form2= NULL;
Action = caFree;

怎么办????



...全文
548 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
请问321 2013-03-20
  • 打赏
  • 举报
回复
由于之前问题解决,所以不躺这浑水了。 设置Parent会改变句柄,MDI不能用Parent? 看了很多资料,搞不懂。 结贴!!
请问321 2013-03-20
  • 打赏
  • 举报
回复
引用 7 楼 dataxdata 的回复:
这个最好有具体的东西
Form1父窗体: void __fastcall TForm1::TreeView1Click(TObject *Sender) { if (TreeView1->Selected->Text == "1111111122222222"){ if (Form2 == NULL){ Form2 = new TForm2(this); Form2->Parent = Form1; } } } Form2:子窗体 void __fastcall TForm2::FormClose(TObject *Sender, TCloseAction &Action) { Form2 = NULL; Action = caFree; }
dataxdata 2013-03-19
  • 打赏
  • 举报
回复
这个最好有具体的东西
请问321 2013-03-19
  • 打赏
  • 举报
回复
引用 5 楼 dataxdata 的回复:
这个Form2是非模态窗体吧?
不知道,是新建的一个窗体,设置FormStyle 为Child
dataxdata 2013-03-19
  • 打赏
  • 举报
回复
这个Form2是非模态窗体吧?
请问321 2013-03-19
  • 打赏
  • 举报
回复
引用 3 楼 dataxdata 的回复:
为什么要加这一句呢? Form2->Parent = Form1;
这就要回到我的另一个问题:form1中的子窗体Form2有DBGrid,点击选中里面的记录,然后按父窗体的控件,再次回到DBGRI的就没有反应 用Form2->Parent = Form1;可以解决这个问题,但现在有新的问题
dataxdata 2013-03-19
  • 打赏
  • 举报
回复
为什么要加这一句呢? Form2->Parent = Form1;
请问321 2013-03-19
  • 打赏
  • 举报
回复
引用 1 楼 dataxdata 的回复:
直接delete Form2就行,不用写其它的
一样的结局
dataxdata 2013-03-19
  • 打赏
  • 举报
回复
直接delete Form2就行,不用写其它的

13,825

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧