读书人

请问个窗体事件执行顺序有关问题

发布时间: 2012-07-23 09:42:19 作者: rapoo

请教个窗体事件执行顺序问题
1.建立窗体TFmin

2.在Form头文件中定义公共成员P

public:// User declarations
String P;



3.在另一个窗体中调用,并给P赋值

fm = new TFm(Application);
fm->P = "123";
fm->Show();


4.在fm窗体事件OnShow中显示p却是没有赋值,为什么呢?

void __fastcall TFm::FormShow(TObject *Sender)
{
ShowMessage(P);
}

[解决办法]
你创建的窗体是不是mdichild的型的,改成normal的应该就没问题了。
[解决办法]
这种情况可以定义一个新的构造函数
TFm::TFm(TComponent* Owner, String str) : TForm(Owner) {
P = str;
}
然后
fm = new TFm(Application, "123");
fm->Show();


[解决办法]
这是因为你将fm的Visible设成true了,在设计时将这个属性改成false就可以了。
[解决办法]
问题,已经说清了。

想说一句,关于 mdichild 型窗口。你的fm是多定义的。直接:
new TFm(Application, "123")->Show();
即可。

MDIChildren[i]、ActiveMDIChild,可找到要处理的窗口。

读书人网 >C++ Builder

热点推荐