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

两个子窗体数据的传递解决思路

2012-02-10 
两个子窗体数据的传递Form1是主窗体(fsMDIForm)Form2、Form3分别是子窗体(FormStyle都是fsMDIChild,并且都

两个子窗体数据的传递
Form1是主窗体(fsMDIForm)  
Form2、Form3分别是子窗体(FormStyle都是fsMDIChild,并且都是Available   forms)  
Form1上有一个Button:
void   __fastcall   TForm1::Button1Click(TObject   *Sender)
{
TForm2   *   NewChildForm;
NewChildForm=new   TForm2(Application);
NewChildForm-> Edit1-> Text= "张三 ";
}
Form2上有一个Edit1和一个Button   。Edit1中的Text填上“123”
以下是我要问的:
当我点击Form2子窗体中的Button按钮时能打开Form3   子窗体,并且Form3子窗体中Edit1中的Text也是“张三”
请问如何实现?  
我试着这样写:
void   __fastcall   TForm2::Button1Click(TObject   *Sender)
{
TForm3   *   NewChildForm;
NewChildForm=new   TForm3(Application);
NewChildForm-> Edit1-> Text=Form2-> Button1-> Caption;
}
可提示错误

[解决办法]
修改Form3的.h文件
__fastcall TForm3(TComponent* Owner, String str);
并在.h文件中定义一个变量 String strtmp;
.cpp文件中
__fastcall TForm3::TForm3(TComponent* Owner, String str)
: TForm(Owner)
{
this-> strtmp = str;
}

在Form3 create的时候写
this-> Edit1-> Text = strtmp;

在Form2呼叫form3的时候写
TForm3 * NewChildForm;
NewChildForm=new TForm3(Application, Button1-> Caption;);
NewChildForm-> Show();

热点排行