我的代码是这样的
有两个按钮,一个按钮是改变他的路径,一个按钮是用来播放的。
代码分别如下:
//改变路径
procedure TForm11.Button3Click(Sender: TObject);
 var
  fn:String;
begin
   if opendialog1.Execute and fileExists(opendialog1.fileName)then
    begin
      fn:=opendialog1.filename;
       with table1 do
        begin
         if not (state in[dsInsert,dsEdit])then
          edit;
          fieldbyname('路径').asstring:=extractfilename(fn);//把路径写入数据库。
          post;
         end;
    end;
end;
//播放声音
procedure TForm11.Button10Click(Sender: TObject);
begin
     if table1.fieldbyname('路径').asstring='' then
          showmessage('没有声音文件!')
     else
     begin
      with mediaplayer1 do
      begin
       Close;
       filename:='sound/'+table1.fieldbyname('路径').asstring;
       showmessage(filename) ;
       open;
       play;
      end;
     end;
end;出现如下问题:刚运行时点击播放声音按钮则可以听到声音,比如原来是1.WAV,但是后来改变了声音文件,把2.wav写入了数据库,则此时点击播放按钮时,出现了错误,错误提示是找不到指定的文件
望各位帮忙。

解决方案 »

  1.   

    showmessage(filename) ;的结果是什么?
      

  2.   

    procedure TForm1.BitBtn2Click(Sender: TObject);
    begin
    if openDialog1.Execute then
      begin
      MediaPlayer1.FileName:=Opendialog1.FileName;
      mediaPlayer1.Close;
      MediaPlayer1.Open;
      MediaPlayer1.TimeFormat:=tfhms;
      end;
      end;
    上面的代码是选择歌曲的,你的另外一个button键就可以播放了
      

  3.   

    谢谢大家,我改了个
    filename:=ExtractFilePath(application.ExeName)+'sound/'+table1.fieldbyname('路径').asstring;好像就可以了。