首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ Builder >

在一个窗体中调用另一个窗体内的函数的奇怪有关问题

2012-03-12 
在一个窗体中调用另一个窗体内的函数的奇怪问题在工程中,有三个窗体MainForm、ColorSetForm和FontSetForm在

在一个窗体中调用另一个窗体内的函数的奇怪问题
在工程中,有三个窗体MainForm、ColorSetForm和FontSetForm
在MainForm.h中包含了其它两个窗体的头文件
在ColorSetForm.cpp和FontSetForm.cpp中,包含了MainForm.cpp
在MainForm中有一个public的函数
UnicodeString getfontname(){
  return this->fontname;(注:fontname是MainForm中的一个私有变量)

ColorSetForm和FontSetForm都是在MainForm中点击相应的菜单时,创建并显示的

问题在于:
1.在ColorSetForm中使用MainForm->getfontname()能正常的取得值
2.在FontSetForm中使用MainForm->getfontname()会报访问出错

在调试时,发现在ColorSetForm调用此函数时,在getfontname函数内,this指针是正常的
在FontSetForm中调用此函数中,在调用前MainForm的句柄都是正常的,但一跳转到getfontname函数内时,其this指针都变成空的了

请问此问题是怎么引起的?如何解决?
PS:win7 sp1,c++Builder xe with update1

[解决办法]
看样子mainform是主窗体了,应该不会失效的,你的问题挺奇怪的

试着把this去掉,或者用mainform代替看看会不会有问题?最好的方法是把代码贴出来,可能是别的地方的问题

热点排行