C
chief_marshal
Unregistered / Unconfirmed
GUEST, unregistred user!
我的工程中有一A窗体,该窗体调用了一线程。线程中有一段循环语句。在循环语句程执行前,我创建了一个B窗体,B窗体上有一进程条,随着线程中循环语句的执行不断变化。在循环过程结束后,关闭B窗体。
问题是:当我退出A窗体时,无任何错误。但退出工程时,报错“无效的窗口句柄”。不知是什麽原因?
1、我跟踪过程序,在退出工程时,在工程的 close 中,有语句rmDomain.FreeAllObject;
在此语句之前都不报错。
2、如果进程中不创建B窗体,不会报错.
我的线程代码如下:
procedure Tcal_serdata.Execute;
var
... ...
begin
//创建状态提示窗体,Form_state为上文提到的B窗体
Form_state:=TForm_state.Create(Application);
Form_state.Show;
Form_state.ProgressBar.Max:=F_serana.subtime;
Form_state.ProgressBar.Position:=0;
for i_count:=1 to F_serana.subtimedo
begin
//状态条变化
Form_state.ProgressBar.Position:=i_count;
... ...
end;
//end for
//数据处理完毕,关闭状态提示窗体
Form_state.close;
... ...
end;
问题出在那里?请各位高手指点!
问题是:当我退出A窗体时,无任何错误。但退出工程时,报错“无效的窗口句柄”。不知是什麽原因?
1、我跟踪过程序,在退出工程时,在工程的 close 中,有语句rmDomain.FreeAllObject;
在此语句之前都不报错。
2、如果进程中不创建B窗体,不会报错.
我的线程代码如下:
procedure Tcal_serdata.Execute;
var
... ...
begin
//创建状态提示窗体,Form_state为上文提到的B窗体
Form_state:=TForm_state.Create(Application);
Form_state.Show;
Form_state.ProgressBar.Max:=F_serana.subtime;
Form_state.ProgressBar.Position:=0;
for i_count:=1 to F_serana.subtimedo
begin
//状态条变化
Form_state.ProgressBar.Position:=i_count;
... ...
end;
//end for
//数据处理完毕,关闭状态提示窗体
Form_state.close;
... ...
end;
问题出在那里?请各位高手指点!