为什么delphi线程无法访问文本框,按钮等控件?

会出现access violation错误
这是Delphi本身的问题,这个没办法的,你如果真想把控件写在线程里,,可以把这些代码写在 procudere 或 function 里,然后再放进线程里

能说详细点吗?

vcl控件多数都不是线程安全的,一般来说都只应主线程来访问,如果子线程需要访问可以调用线程中的同步方法,这样才不会有冲突
温馨提示:答案为网友推荐,仅供参考
第1个回答  2010-03-08
这是Delphi本身的问题,这个没办法的,你如果真想把控件写在线程里,,可以把这些代码写在 procudere 或 function 里,然后再放进线程里
第2个回答  2010-03-09
线程和主窗口是两个线程,你在线程里访问主窗口上的控件是会冲突地,
如果你必须要访问主窗口的控件,可以使用发消息的方式来处理
为什么delphi线程无法访问文本框,按钮等控件?
vcl控件多数都不是线程安全的,一般来说都只应主线程来访问,如果子线程需要访问可以调用线程中的同步方法,这样才不会有冲突

delphi 中 怎么做线程单元里调用主窗口单元的控件事件 给个例子...
这有很多方法,你可以在线程里面写个方法,方法里面的代码恰好是控件事件里面的代码就行啦,然后在线程run里面调用。但是如果窗口中的控件事件涉及到界面的刷新,则不应该在线程中调用,应该由线程发送一个消息给窗口,窗口捕获到该消息后,调用相应控件的事件。下面是我的部分代码,可一参考:ShowCollectDat...

delphi 中 怎么做线程单位里调用主窗口单位的控件事宜 给个例子...
1应用线程的时刻,碰到的一个根本的问题,就是多个线查拜访同一个对象,比如拜访雷同的文件、DLL、雷同的通信资本,特别是数据库的拜访,当多个线程对同一数据库字段写入的时刻,其结不雅会出现不肯定性。 临界区用于解决这个问题,它可以包管线程应用敏感数据的时刻,阻赛其他的线查拜访名干瘪据,应用...

delphidll为什么用线程调用call游戏会崩溃
线路不匹配,根据查询CSDN博客网显示。1、由于线程不安全的操作导致的。2、长时间运行,导致数据访问冲突,产生的崩溃。3、用代码注入器编写内联汇直接注入代码导致崩溃。

delphi 如何在自动终止线程和手动终止线程时都正确的设置窗体上的控件...
在Delphi中使用线程,当窗体关闭时,如果窗体中启用了线程,一般需要手动关闭,以释放资源。 常用来结束线程的代码为:thread.Terminate;thread.WaitFor;即先触发Terminate方法,然后等待线程的结束。这种方法要求线程不能使用 FreeOnTerminate := True;否则在WaitFor即将结束的时候会引发“无效句柄”的错误。

使用Delphi开发OCX控件的一些记录
过程中使用了Delphi、C#、VC、Java等技术,最终完成各项设备连接。记录如下:一、摄像头和高拍仪 产品由一家公司提供,最初提供OCX,无需自行开发。发现摄像头与高拍仪无法同时使用,且classid相同。解决方法:将摄像头设备接到主板USB口,使用不同classid的OCX解决。二、签名板 使用C#和VC版本的demo,...

请问delphi中如何在多线程环境下操作webbrowser控件,也就是说,webbrows...
可以创建若干个线程,动态也创建若干个webbrowser控件.一个线程操作一个webbrowser 也可以多个线程操作一个webbrowser,但是要注册在使用webbrowser进行同步.同一时间内要保证只有一个线程在访问webbrowser控件!

delphi编程:多线程参数传递,收不到返回值,为什么?
memo1.Text:=som; \/\/ 执行时上面那个线程可能还没执行结束 你可以理解为,线程中的代码和 memo1这句是同时执行的,所以som的结果并不可预知 thread := Createthread(nil, 0, @MyThreadFun, @p, 0, Id);WaitForSingleObject(thread) \/\/ 等待线程执行结束 memo1.Text:=som; \/\/ 这样就对了,但...

delphi控件Image加载图片问题
Delphi的TImage控件在加载图片的时候,采用的是同步加载的方式。也就是主线程会一直处于阻塞状态,直到TImage.Picture.LoadFromFile加载完毕为止。也就是说,如果你的代码运行到了LoadFromFile之后就代表图片已经加载完成了。当然,因为是同步加载,所以主线程在加载图片时,完全没有机会重绘窗口。所以加载大图片...

在Delphi中,如何和串口连接起来
Delphi以其强大的功能、易用性和快速的代码执行速度,在企业信息系统构建中扮演着越来越重要的角色,众多程序员倾向于使用Delphi开发各类应用程序。然而,Delphi缺少内置的串口通信控件,且其文档中未提及串口通信,这给编写通信程序的开发者带来了一定的困扰。实现串口通信的方法主要有三种:使用控件(如MSCOMM...

相似回答