有一个按钮的onclick事件里,是调用一个线程A,现在当连续按n次按钮后,那就会生成n个线程A吧?如果使第一个线程A执行完,再执行第二个线程A,再执行第三个线程A.......再执行第n个线程A?
解决方案 »
- 文件引用问题
- 在delphi中,怎么用一个数组代表多个不同长度、类型的结构体的变量?
- {诚心请教}[Ehlib之DBGridEh] 的STfilter的问题。选"Empty" 或者 "Not Empty"时出错。
- 我把我的全部剩余分数都拿出来啦!求救啊!
- 用ODBC连接oracle,如何在使用中动态更改MAX ROWS的参数值
- 请帮忙解答一下在DBGRID里面怎么判断一个字段为空! 在线等线!马上结贴!
- 如何用DELPHI编程控制家庭电器的开关,如电灯,门,音像等,要加中间设备吗?
- 关于非计算机专业同仁
- DELPHI中怎么消息循环不行啊。
- 月份问题
- 有没有办法 枚举类的所有属性和方法?
- dbgrid排序问题?
在线程Terminate事件加入代码
begin
Button1.Enable := True ;
inherited;
end;
unit Unit1;interfaceuses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Grids, DBGrids, DB, ADODB, StdCtrls,mmsystem;type
TForm1 = class(TForm)
Button1: TButton;
DataSource1: TDataSource;
ADOQuery1: TADOQuery;
DBGrid1: TDBGrid;
Button2: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;var
Form1: TForm1;
implementationuses unit2;{$R *.dfm}procedure TForm1.Button1Click(Sender: TObject);
begin
adoquery1.Edit;
adoquery1.FieldByName('pa_state').AsString:='2';
adoquery1.Post;
adoquery1.Requery;
TSound.create();
end;end.unit Unit2;interfaceuses
classes,mmsystem;
type
TSound=class(TThread)
protected
procedure Execute;override;
public
constructor create();
end;implementation
uses unit1;constructor TSound.create();
begin
FreeOnTerminate:=true;
inherited Create(false);
end;procedure TSound.Execute;
begin
PlaySound('C:\a.wav',0,SND_SYNC);
PlaySound('C:\tada.wav',0,SND_SYNC);
end;end.