问个和 前几天子窗口数据传递类似的问题
主窗口MainForm new出子窗口 ChildForm1,ChildForm1中再new出一个窗口ChildForm2,ChildForm2要调用ChildForm1中的数据可以通过修ChildForm2的改构造函数把ChildForm1的数据传给ChildForm2.
现在遇到的问题是:想在子窗口ChildForm1中new一个线程,在线程中操作并控制 ChildForm1的控件,在线程中直接像这样调用: ChildForm1->Edit= ... 无法实现,编译不了,这怎么办呢?
[解决办法]
在线程中加一个ChildForm1的指针就行了
thread1.h
class TChildForm1; // 先声明窗体名称供下面引用
class Thread1 : public TThread {
private :
TChildForm1 *m_pForm1;
void __fastcall UpdateForm1Edit();
public :
Thread1(TChildForm1 *pForm1);
#include "ClildForm1.h" // 引入实际窗体声明
void Thread1::Execute() {
....
Synchronize(UpdateForm1Edit);
....
}
void __fastcall Thread1::UpdateForm1Eidt() {
m_pForm1->Edit1 = ......
}