建立窗口的问题,先解答给分。

myredsun 2003-03-06 01:54:55
在BCB中要建立窗体,用下面两种方式,有什么不同。
TForm3* from3 = new TForm3(this);
Application->CreateForm(__classid(TForm3), &Form3);
为什么有时候我用第一种的时候会报错(Access violation at address 400EE72E in module vcl60.bpl),而用第二种方式就好了。
...全文
43 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
yesry 2003-03-06
  • 打赏
  • 举报
回复
呵呵,好玩。
void __fastcall TForm1::Button1Click(TObject *Sender)
{
TForm1 *f;
Application->CreateForm(__classid(TForm1), &f);
f->Show();
f=new TForm1(Application);//注意不同噢!
f->Show();
}
//---------------------------------------------------------------------------
所谓的自动创建是没有根据的。
woainihaha 2003-03-06
  • 打赏
  • 举报
回复
你使用 TForm3* from3 = new TForm3(this); 创建新窗体的前提是存在一个TForm3类,如果不存在将发生错误.如果存在,将创建一个新的和Form3属性一样的窗体,并且用新产生的窗体也具有老窗体的所有函数,但窗体之间的关系是并列的,互相之间不影响.
favorit 2003-03-06
  • 打赏
  • 举报
回复
如果Form3为自动创建,则后来不需要new了
woainihaha 2003-03-06
  • 打赏
  • 举报
回复
你的代码有问题,试试这样:
TForm *formx=new TForm(this);

formx->Caption="Test";

formx->Show();

你自己看看区别吧!
laoshang 2003-03-06
  • 打赏
  • 举报
回复
先看一下你的project->options中form3是否为自动创建,如已建立肯定会报错啦

13,870

社区成员

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

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