是这样的,我呢需要在接受到数据(实时的)(因为是 监控),根据某些条件判断需要给予告警声音提示,比如接受的数据中某个值为5,就给予特定的声音提示,
有可能在某个时刻(短时间)比如1秒内,收到10条告警,都需要声音提示(每一个不相同):
我怎么能保证这10个告警按照接受先后次序一次给予提示(保证中间间隔一定的时间),10个声音都要依次发出.我用了sndplaysound(); 试过,不行要不有的声音在前一个声音还没有播放完结不能播放了,就是不发声音(只有短音一响而过,根本不是原来的声音)
声音文件是*.wav.
那位给我些提示.有实例更好,主要是保证每一个声音都能按时间顺序发出而且是完整的,

解决方案 »

  1.   

    procedure p1();//发声过程
      var
      i,j:integer;
      begin
      for i:=1 to 10000000 do
      begin
      null;
      end;  messagebeep(0);
      end;procedure TForm1.Button1Click(Sender: TObject);//按钮事件
    var i:integer;
    begin
     for i:=1 to 10 do
     begin
     p1;
     end;end;
      

  2.   

    上面的代码只是提供一种思路,具体应用的时候要修改,循环的次数最好根据机器速度而定,这种方法只是保证按顺序执行调用的函数,我用的是for循环给你演示,如果改成消息触发也可以,效果是一样的,我经常这么用,保证没问题