Delphi中线程调用主窗口变量的问题

Delphi中线程调用主窗口变量的问题
在线程中有以下代码,在线程中调用主窗口的变量:
seconds:=strtoint(MainForm.SendTime.Text);……
加入这一段代码后,运行程序并调用线程,退出程序时会报错(如图)。去掉这一段代码就不会出错,请问怎样解决这一问题?
将SendTime.Text内容赋信誉值给seconds是在线程中执行的
但不能保证主线程中对SendTime.text内容的修改,肯敏坦雀定会出错!
解决办法是使用Delphi自带的同步主线程的语句或使桥早用SendMessage或PostMessage进行消息同步
在线程中,需要写好源一个同步方法,在方法中访问主简粗线拦袜镇程的窗体资源。
procedure TMyThread.GetMainFormText;
begin
Seconds := StrToInt( MainForm.SendTime.Text );
end;
在线程的主逻辑体中写为Synchronize( GetMainFormText );
你在线程中扰困调用主窗体的内高如容,退出时是不是没有关闭线程啊?这样的话当主窗体销毁,而线程没有终止时,调用主窗戚李启体的内容当然会报错了
简手启单指配的处理就是先判断一下MainForm是唯薯指否存在
if Assigned(MainForm) then
seconds:=strtoint(MainForm.SendTime.Text);……
需要首先创建窗口关联
← 上一篇: 下一篇: →