已实现用线程控制进度条,希望在线程事件完成后,关闭程序。
在form1的oncreate事件中,写有一下代码
if WaitForSingleObject(hProcess, INFINITE) = WAIT_OBJECT_0 then
application.Terminate;
监控线程是否完成,并在完成后关闭程序,
但是造成线程工作期间窗体上其他组件不能使用!(按钮都点不上)
应该在哪检测线程????
求助~~~
在form1的oncreate事件中,写有一下代码
if WaitForSingleObject(hProcess, INFINITE) = WAIT_OBJECT_0 then
application.Terminate;
监控线程是否完成,并在完成后关闭程序,
但是造成线程工作期间窗体上其他组件不能使用!(按钮都点不上)
应该在哪检测线程????
求助~~~
解决方案 »
- socket 中 accept函数的第三个参数什么意思??
- 如何修改查询到的数据??
- 怎么利用加密狗加密我的程序
- 错误提示 "control olecontainer1 has no parent window " 如何解决?
- 获得服务程序地址的问题
- 请问delphi2005在那下载,已测试能安装的
- 在设计期,如何指定组件双击时的属性或事件?
- 一个Delphi程序员的愤怒
- 如何在MDI數据庫應用控件中共用工具欄上的新建,編輯,等按鈕
- (全力送分,来者有分,很有难度%^%)我Delphi做一个MDI窗口,而我还想不用窗口的标题栏,然后。。。。。。
- 关于FreeAndNil的问题
- delphi显示网页过程滚动条问题
if WaitForSingleObject(hProcess, INFINITE) = WAIT_OBJECT_0 then
application.Terminate;
unit Unit1;interfaceuses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs;
type
TForm1 = class(TForm)
procedure FormCreate(Sender: TObject);
private
procedure OnThreadTerminated(Sender: TObject);
public
{ Public declarations }
end; TSleepThread = class(TThread)
private
protected
procedure Execute; override;
public end;var
Form1: TForm1;implementation{$R *.dfm}procedure TForm1.FormCreate(Sender: TObject);
var
t: TSleepThread;
begin
t := TSleepThread.Create(True);
t.OnTerminate := OnThreadTerminated;
t.Resume;
end;{ TSleepThread }procedure TSleepThread.Execute;
begin
Sleep(5000);
end;procedure TForm1.OnThreadTerminated(Sender: TObject);
begin
Application.Terminate;
end;end.
begin
if WaitForSingleObject(hProcess, 100) = WAIT_OBJECT_0 then
begin
application.Terminate;
Break;
end
else
application.ProcessMessages;
end;