请教个窗体事件执行顺序问题
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,可找到要处理的窗口。