先在implementation前作如下的函数声明: function ThreadPlay(p:pointer):longint;stdcall;接下来在implementation后写此函数: function ThreadPlay(p:pointer):longint;stdcall; var musicname:PChar; begin musicname:=PChar(form1.filename); sndPlaySound (musicname,SND_LOOP or SND_SYNC); end; 这是后面的按钮单击事件: 关键是找到线程函数的入口地址,再创建之 procedure TForm1.btn_playClick(Sender: TObject); var hThread:Thandle; //线程句柄 ThreadID:DWord; //线程ID号 begin try hThread:=createthread(nil,0,@ThreadPlay,nil,0,ThreadID);//创建此线程 except messagebox(handle,'error',nil,mb_ok); end; end;
function ThreadPlay(p:pointer):longint;stdcall;接下来在implementation后写此函数:
function ThreadPlay(p:pointer):longint;stdcall;
var musicname:PChar;
begin
musicname:=PChar(form1.filename);
sndPlaySound (musicname,SND_LOOP or SND_SYNC);
end;
这是后面的按钮单击事件:
关键是找到线程函数的入口地址,再创建之
procedure TForm1.btn_playClick(Sender: TObject);
var hThread:Thandle; //线程句柄
ThreadID:DWord; //线程ID号
begin
try
hThread:=createthread(nil,0,@ThreadPlay,nil,0,ThreadID);//创建此线程
except
messagebox(handle,'error',nil,mb_ok);
end;
end;
2.创建一个线程类的实例就创建了一条线程
3.你可以把线程做成一个循环(并且是死循环)一直发送信息。但是这样会占用大量的CPU时间
4.Delphi的Demo文件夹中有线程的例子