奇怪的播放出错问题!(39分)

  • 主题发起人 主题发起人 ilovedelphi4
  • 开始时间 开始时间
I

ilovedelphi4

Unregistered / Unconfirmed
GUEST, unregistred user!
各位朋友,你们好!
我有二个FORM。FORM1调用FORM2。现在form1和FORM2里
各有一个MEDIAPLAYER1。我是这样写程序的:
procedure form1.activate(sender:tobject);
begin
with mediaplayer1 do
begin
filename:='c:/xxx.mid';
open;
play;
end;
end;

现在我按FORM1上的一个BUTTON来调用FORM2,并且关闭音乐。
procedure button1.onclick(...);
mediaplayer1.stop;
form1.hide;//我需要隐藏,而非CLOSE
form2.showmodal;
end;
//至此一切正常
//现在FORM2出现

procedure form2.activate(sender:tobject);
begin
with mediaplayer1 do
begin
filename:='c:/xxx1.mid';
open;
play;
end;
end;
//音乐起,是XXX1.mid。

FORM2上有BUTTON,是用来返回FORM1的。
procedure button1.onclick(...);
//问题就出在这里,大家请看:
mediaplayer1.stop;
form1.show;//这里好象只能用SHOW,不能用SHOWMODAL;
form2.close;
end;
奇怪的是FORM2上播放的XXX1.MID音乐没有STOP,而是
带到了FORM1上去播放了。而我需要在FORM1出现的时候
播放FOEM1里的音乐(既xxx.mid,而非XXX1.MID)
就算我用MEDIAPLAYER1的CLOSE过程,也是一样无法避免
FORM2的音乐带到FORM1上播放的结果。

请问,我错在哪里?

 
我按照你的做法做了一下,没有发现你说的问题,只是直接关闭Form2的时候,MIDI
继续播放而且Form1没有显示出来,这是你程序的问题(小问题)。不知是否和版本
有关:我用Delphi4,Pwin98+ActiveMovie2.0
 
柳五公子说的没错!
 
为什么不用Hide而非用Close?
&:建议不要用Activate而用另一个单独的函数或过程进行调用。
 
多人接受答案了。
 

Similar threads

I
回复
0
查看
740
import
I
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
I
回复
0
查看
716
import
I
后退
顶部