一个Flash播放程序,把选择的很多.swf文件放在了一个ListBox里,当第一次把这些文件选进ListBox里,然后第一次随便选一个文件并按下“播放”按钮后,可以正常播放。但如果是先选择了一个文件,此时不按“播放”,然后又选择了另一个文件,这时再按“播放”时,程序就出错了。
不知道为什么啊?
真是急死我了,希望大家帮帮忙,谢谢了!!!

解决方案 »

  1.   

    如何关闭旧文件呢?再说我只是多次点击了文件,并没有每个都“播放”啊?
    只要点击两个以上的文件后再按“播放”,程序就会出错。以下是ListBox1Click代码:
    procedure TFlashPlayer.ListBox1Click(Sender: TObject);
    var
      i: Integer;
    begin
      for i:=0 to ListBox1.Items.Count-1 do
      begin
        if ListBox1.Selected[i] then
        begin
          PlayBtn.Enabled:=true;//当选择一个文件后,“播放”按钮呈有效状态
        end;
      end;
    end;请问该如何解决这个问题?
    谢谢!
      

  2.   

    这是完整代码,拜托了!procedure TFlashPlayer.PlayBtnClick(Sender: TObject);
    begin
      ShockwaveFlash1.Playing:=true;
      ShockwaveFlash1.Movie:=s;   //s为在ListBox里所选择的文件
      Timer2.Enabled:=false;
      Timer3.Enabled:=false;
      TrackBar1.Max:=ShockwaveFlash1.TotalFrames;
      GroupBox1.Caption:=ListBox1.Items[ListBox1.ItemIndex];
      PlayBtn.Enabled:=false;
      PauseBtn.Enabled:=true;procedure TFlashPlayer.SpeedButton1Click(Sender: TObject);
    begin
      if ShockwaveFlash1.Playing=true then
      begin
        ShockwaveFlash1.StopPlay;
        Full.FullScreen.AutoScroll:=true;
        Full.FullScreen.Visible:=true;
        Full.FullScreen.ShockwaveFlash2.Movie:=ShockwaveFlash1.Movie;
        Full.FullScreen.ShockwaveFlash2.Stop;
        Full.FullScreen.ShockwaveFlash2.GotoFrame(ShockwaveFlash1.FrameNum);
        Full.FullScreen.ShockwaveFlash2.Play;
      end;
    end;
      BackBtn.Enabled:=true;
      LaterBtn.Enabled:=true;
      RewindBtn.Enabled:=true;
    end;
      

  3.   

    上面写错了!!!
    应该是这样的:procedure TFlashPlayer.PlayBtnClick(Sender: TObject);
    begin
      ShockwaveFlash1.Playing:=true;
      ShockwaveFlash1.Movie:=s;   //s为在ListBox里所选择的文件
      Timer2.Enabled:=false;
      Timer3.Enabled:=false;
      TrackBar1.Max:=ShockwaveFlash1.TotalFrames;
      GroupBox1.Caption:=ListBox1.Items[ListBox1.ItemIndex];
      PlayBtn.Enabled:=false;
      PauseBtn.Enabled:=true;procedure TFlashPlayer.ListBox1Click(Sender: TObject);
    var
      i: Integer;
    begin
      s:=s+ListBox1.Items[ListBox1.ItemIndex];
      for i:=0 to ListBox1.Items.Count-1 do
      begin
        if ListBox1.Selected[i] then
        begin
          PlayBtn.Enabled:=true;
          PauseBtn.Enabled:=false;
          BackBtn.Enabled:=false;
          LaterBtn.Enabled:=true;
          RewindBtn.Enabled:=false;
        end;
      end;
    end;
      

  4.   


    s:string;
    procedure TFlashPlayer.ListBox1Click(Sender: TObject);
    var
      i: Integer;
    begin
      for i:=0 to ListBox1.Items.Count-1 do
      begin
        if ListBox1.Selected[i] then
        begin
          PlayBtn.Enabled:=true;
          PauseBtn.Enabled:=false;
          BackBtn.Enabled:=false;
          LaterBtn.Enabled:=true;
          RewindBtn.Enabled:=false;
          s:=ListBox1.Items[ListBox1.ItemIndex];
        end;procedure TFlashPlayer.PlayBtnClick(Sender: TObject);
    begin
      ShockwaveFlash1.Movie:=s;   //s为在ListBox里所选择的文件
    //先得指明路径吧
      ShockwaveFlash1.Playing:=true;
      Timer2.Enabled:=false;
      Timer3.Enabled:=false;
      TrackBar1.Max:=ShockwaveFlash1.TotalFrames;
      GroupBox1.Caption:=ListBox1.Items[ListBox1.ItemIndex];
      PlayBtn.Enabled:=false;
      PauseBtn.Enabled:=true;
    end;
      end;
    end;
      

  5.   

    listbox里的是文件的完整路径吗?