程序运行调用窗体的问题

kkklmn 2004-12-07 08:36:43
一个程序有很多窗体组成,我想在用到那个窗体时在调出来,不用时就从内存中删除。请问怎么做啊?
...全文
78 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
chiengod 2004-12-08
  • 打赏
  • 举报
回复
把你调用以前做的窗体,在project/options中的forms页上,从左边移到右边。
然后,new delete
kkklmn 2004-12-08
  • 打赏
  • 举报
回复
这样做还是创建的新窗体啊。我想动态调用以前做的窗体。
kkklmn 2004-12-08
  • 打赏
  • 举报
回复
我把窗体移了,还是不行啊!还是出现新窗体啊!
killer80719 2004-12-07
  • 打赏
  • 举报
回复
窗体分为模态和非模态两种,建议楼主看看这方面的资料。呵呵:)
(我用了CBC一年,也是才知道)
xu_xinyu 2004-12-07
  • 打赏
  • 举报
回复
首先,要设置一下工程的属性,project/options中的forms页上,把需要手动生成的窗体从左边移到右边。

第二,如果是sdi可以这样:
void __fastcall TfrmMain::N10Click(TObject *Sender)
{
frmDictionary = new TfrmDictionary(this);
frmDictionary->ShowModal();
frmDictionary->Release();
}

第三,如果是mdi可以这样:
1.在你要自动控制的窗体中的关闭事件中写:
void __fastcall TfrmDictionary::FormClose(TObject *Sender,
TCloseAction &Action)
{
Action = caFree;
frmDictionary = NULL;
}

2.在调用的地方写:
void __fastcall TfrmMain::N10Click(TObject *Sender)
{
if (!frmDictionary)
{
//防止重复创建
frmDictionary = new TfrmDictionary(this);
frmDictionary->Show();
}
}




勉励前行 2004-12-07
  • 打赏
  • 举报
回复
暈倒。.......
kkklmn 2004-12-07
  • 打赏
  • 举报
回复
但是这样生成的窗体是一个新的啊,不是我以前的做好的那个啊
h98458 2004-12-07
  • 打赏
  • 举报
回复
动态生成窗体啊,这样:
MyForm=new TMyForm(this);

删除时:
delete MyForm;

13,825

社区成员

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

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