谢谢!,请给我提点意见!!!

解决方案 »

  1.   

    先在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;
      

  2.   

    1.线程只是delphi封装的一个类,而不代表一个单元文件
    2.创建一个线程类的实例就创建了一条线程
    3.你可以把线程做成一个循环(并且是死循环)一直发送信息。但是这样会占用大量的CPU时间
    4.Delphi的Demo文件夹中有线程的例子