(来的都有分!)线程里动态生成Form的问题

Blueion 2005-04-13 11:03:21
我的程序使用线程,在线程里动态生成Form,我希望把线程里的变量能传到生成的Form中。请问该怎么办?另外,线程里动态生成Form是不是一定要使用同步操作,Form有没有特别的设置?
...全文
167 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
NetSpider9804040 2005-04-14
  • 打赏
  • 举报
回复
学习!
Blueion 2005-04-14
  • 打赏
  • 举报
回复
传递变量的问题已经解决了,谢谢各位!!
就是第二个问题还没搞清楚,等待……
Friecin 2005-04-14
  • 打赏
  • 举报
回复
在线程中传递参数给Form有很多方法,你可以在Form的public中声明变量,在线程中:
TForm *ThreadForm = new TForm( Application );
THreadForm->PublicVar= 你传递的值

还有一种方法,使我常用的。就是为Form声明一个虚构造函数:

//BCB原生的,加virtual 关键字
virtual __fastcall TForm1(TComponent* Owner);

//自定义构造函数:接受线程传递过来的变量
virtual __fastcall TForm1( int ThreadVar,TComponent *Owner);

实现:

__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{

}
//---------------------------------------------------------------------------

__fastcall TForm1::TForm1( int ThreadVar, TComponent* Owner)
: TForm(Owner)
{
//在这里处理 ThreadVar
}
//-------------------------------------------------------------------

调用:
TForm1 *Form1 = new TForm1( 123, Application );
chpst 2005-04-14
  • 打赏
  • 举报
回复
在线程.h文件中protected:

TForm * user_Form_Com;
.cpp文件中
user_Form_Com=new TForm(Application); //创建新窗体
user_Form_Com->Width=35;
user_Form_Com->Height=35;
user_Form_Com->Visible=false;
chpst 2005-04-14
  • 打赏
  • 举报
回复
沙发
Friecin 2005-04-14
  • 打赏
  • 举报
回复
要注意:不能使用
Form1 = new TForm1( Applicatoin);这样的语句

应该使用:
TForm1 *Form1 = new TForm1( Application);
Blueion 2005-04-14
  • 打赏
  • 举报
回复
就没人回答?
我的问题不就是线程里动态生成Form要注意什么吗?
下载代码方式:https://pan.quark.cn/s/d5321a99c521 在信息技术网络架构领域,配置双块网卡于同一网络段内的静态路由是一项高级且具有实用价值的技术,其能够高效地管理和优化网络数据流,保障数据包能够沿最优路径传送,同时合理配与控制内外网络资源的访问。本资料将详细阐述双块网卡同网络段静态路由的核心概念、配置机制及其应用实例。 ### 双块网卡同网络段静态路由概述 双块网卡同网络段静态路由指的是在一台主机上部署两个或更多网络接口卡(NICs),这些网卡可能接入同一个物理网络或不同的物理网络,但它们的IP地址归属于同一个网络段。在这种配置下,主机能够同时作为多个子网的成员,并通过静态路由表来引导数据包的传输路径。静态路由是由网络管理者手动设定的,它不依赖于动态路由协议,因而具备更高的稳定性和安全性。 ### 配置机制 在双块网卡同网络段静态路由的应用场景中,关键环节在于为各个网卡设定正确的默认网关与子网掩码,以及确立通往特定目标网络的静态路由条目。具体而言,每块网卡都必须拥有独立的IP地址和子网掩码,而默认网关则用于转发那些需要进入外部网络的数据包。此外,通过增设静态路由条目,可以明确指定某些特定目的地址的数据包应经由哪块网卡进行发送。 ### 实际操作流程 以下是从相关内容中总结出的实际操作流程: 1. **环境初始化**:确认两块网卡已正确安装,并配置了相应的IP地址与子网掩码。例如,一块网卡的IP地址为192.168.1.200,另一块为192.168.1.219,均属于192.168.1.0/24网络段。 2. **删除现有路由**:运用`routedelete 0.0.0.0`指令移除所有默认路由,以确保后续配置不会受到干扰。...

1,317

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder 网络及通讯开发
社区管理员
  • 网络及通讯开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧