C++ 怎么在事件中调用其他事件中的变量?
C++ builder中点击Button3会动态创建一个WebBrowser控件,当关闭创建的窗口,会触发OnClose事件,在事件中销毁自己定义的WebBrowser控件MyWeb2,但是会出现错误:MainForm.cpp(48): E2451 Undefined symbol 'MyWeb2'
要怎么才能避免上面的问题?//---------------------------------------------------------------------------
void __fastcall TForm1::MyFormOnClose(TObject *Sender, TCloseAction &Action)
{
delete MyWeb2;
ShowMessage("就要关闭窗口了");
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button3Click(TObject *Sender)
{
TForm *MyForm = new TForm(this);
TCppWebBrowser *MyWeb2 = newTCppWebBrowser(MyForm);
MyWeb2->HostDockSite = MyForm;
MyWeb2->Align = alClient;
MyWeb2->Navigate(WideString("http://play.baidu.com/"));
MyForm->OnClose = MyFormOnClose;
MyForm->Show();
}
//--------------------------------------------------------------------------- MyWeb2 需要定义为 全局变量,或这个CPP文件中的静态变量 即MyWeb2需要定义在Button3Click外面 ele_eye 发表于 2013-1-11 22:00 static/image/common/back.gif
MyWeb2 需要定义为 全局变量,或这个CPP文件中的静态变量 即MyWeb2需要定义在Button3Click外面 ...
我希望是动态的生成 啊,如果我要是用数组控件的话,定义成全局的话会不会占用很多的内存啊? ele_eye 发表于 2013-1-11 22:00 static/image/common/back.gif
MyWeb2 需要定义为 全局变量,或这个CPP文件中的静态变量 即MyWeb2需要定义在Button3Click外面 ...
而且如果那样的话动态创建的窗口也得定义成全局的了,我也试过了,还是通不过!
出现错误: MainForm.cpp(45): E2297 'this' can only be used within a member function//---------------------------------------------------------------------------
TForm *MyForm = new TForm(this);
TCppWebBrowser *MyWeb2 = newTCppWebBrowser(MyForm);
void __fastcall TForm1::MyFormOnClose(TObject *Sender, TCloseAction &Action)
{
delete MyWeb2;
ShowMessage("就要关闭窗口了");
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button3Click(TObject *Sender)
{
MyWeb2->HostDockSite = MyForm;
MyWeb2->Align = alClient;
MyWeb2->Navigate(WideString("http://play.baidu.com/"));
MyForm->OnClose = MyFormOnClose;
MyForm->Show();
}
//---------------------------------------------------------------------------
你会灵活一点啊
TCppWebBrowser *MyWeb2;
。。。。。。
void XXXXX(void)
{
MyWeb2 = newTCppWebBrowser(MyForm);
}
void XXXXX(void)
{
delete MyWeb2;
}
首先说明 我不会C++ 但是不管会不会,都知道需要这样定义变量的
ele_eye 发表于 2013-1-11 22:14 static/image/common/back.gif
你会灵活一点啊
TCppWebBrowser *MyWeb2;
。。。。。。
噢噢, 是这样的啊 Talsinpo 发表于 2013-1-11 22:02 static/image/common/back.gif
我希望是动态的生成 啊,如果我要是用数组控件的话,定义成全局的话会不会占用很多的内存啊? ...
就一个指针,没有太大的空间;另外,可以使用数组来表示当前的页面上的控件;
还有,最好学学C++,C++的精髓在模式设计上;
页:
[1]