读书人

怎么向MDIChild窗体的formshow事件传入

发布时间: 2012-04-19 14:36:43 作者: rapoo

如何向MDIChild窗体的formshow事件传入参数?
如何向MDIChild窗体的formshow事件传入参数?

创建MDIChild窗体时,程序会自动运行MDIChild窗体的formshow事件

而此时,给MDIChild窗体的参数赋值的语句还未执行,这样的话,就导致了formshow事件中调用参数无效了。

Delphi(Pascal) code
//主窗体代码procedure btn1.onclick(sender:tobject);begin if form2=nil then form2:=TForm2.create(self);  if assigned(form2) then  begin    form2.strTitle:='测试';    form2.show;  end;end;//子窗体代码procedure TForm2.onshow(sender:tobject);begin  lblTitle.caption:=strTitle;end;


问题是
在执行form2.strTitle:='测试';的时候,其实已经执行了form2.show了,所以参数没有被传入。


[解决办法]
TForm2中添加一个public方法和相关属性,创建TForm2时,在form2.Show之前,先执行form2.xxxx方法,传进参数,这样onshow时,就可以访问这些属性了
[解决办法]
直接用form2.caption,或者在Form2中增加一个函数
Create后,就调用此函数并传入参数,在这个函数内做配置动作

另外,MDIChild在create后会自己显示出来,不用另外show;

[解决办法]
探讨
直接用form2.caption,或者在Form2中增加一个函数
Create后,就调用此函数并传入参数,在这个函数内做配置动作

另外,MDIChild在create后会自己显示出来,不用另外show;

[解决办法]
探讨
如何向MDIChild窗体的formshow事件传入参数?

创建MDIChild窗体时,程序会自动运行MDIChild窗体的formshow事件

而此时,给MDIChild窗体的参数赋值的语句还未执行,这样的话,就导致了formshow事件中调用参数无效了。


Delphi(Pascal) code


//主窗体代码
procedure btn1.onclick(se……

[解决办法]
探讨
如何向MDIChild窗体的formshow事件传入参数?

创建MDIChild窗体时,程序会自动运行MDIChild窗体的formshow事件

而此时,给MDIChild窗体的参数赋值的语句还未执行,这样的话,就导致了formshow事件中调用参数无效了。


Delphi(Pascal) code

//主窗体代码
procedure btn1.onclick(send……

[解决办法]
探讨
引用:
如何向MDIChild窗体的formshow事件传入参数?

创建MDIChild窗体时,程序会自动运行MDIChild窗体的formshow事件

而此时,给MDIChild窗体的参数赋值的语句还未执行,这样的话,就导致了formshow事件中调用参数无效了。


Delphi(Pascal) code

//主窗体代码
procedure btn1.o……

[解决办法]
设置“全局变量”传递值即可
[解决办法]
看下你写的代码:
Delphi(Pascal) code
procedure btn1.onclick(sender:tobject);begin//如果没有创建,则创建,这里会form2.FormCreate等  if form2=nil then form2:=TForm2.create(self); //已经创建,赋值显示,如果申明的是公共的应该是可以赋值  if assigned(form2) then   begin    form2.strTitle:='测试';    form2.show;  end;end
[解决办法]
动态创建窗体吗

读书人网 >.NET

热点推荐