当我运行程序 时候总出现下面的错误!请达人帮我解决一下
当程序运行到mediaplay1.open;
mediaplay1.play;的时候总是出现这样的错误:设备的名称已被此应用程序作别名,请使用唯一的别名
故障类EMCIDeviceError
我的运行环境是2000 新手不知道问题出在那 所以把全部代码都贴上了,请注意出现mediaplay1.open和mediaplay1.play的地方。interfaceuses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls, MPlayer, jpeg, StdCtrls, CoolButton,
Buttons;type
TForm1 = class(TForm)
MediaPlayer11: TMediaPlayer;
Image1: TImage;
CoolButton1: TCoolButton;
CoolButton2: TCoolButton;
CoolButton3: TCoolButton;
CoolButton4: TCoolButton;
CoolButton5: TCoolButton;
CoolButton6: TCoolButton;
procedure WriteMciConfig;
procedure FormCreate(Sender: TObject);
procedure FormShow(Sender: TObject);
//procedure MediaPlayer1Notify(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure CoolButton1Click(Sender: TObject);
procedure CoolButton3Click(Sender: TObject);
procedure CoolButton5Click(Sender: TObject);
procedure CoolButton2Click(Sender: TObject);
procedure CoolButton4Click(Sender: TObject);
procedure CoolButton6Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;var
Form1: TForm1;
PathBuffer: array[0..255] of char;
pathstr:string;
i:integer=0; {用来标识主画面背景音乐是否正在播放}
FormNum:integer=0; {用来标识是哪个窗口调用帮助窗口}
const
ScreenWidth: LongInt = 1024; {默认分辨率1024*768}
ScreenHeight: LongInt = 768;
implementation
uses unit2,unit3,unit4,unit5,unit6,unit7,unit8,unit9,unit12, Unit10;
{$R *.dfm}{取根路径的函数,如d:}
Function GetRoot(s: String) : string;
var i : integer;
begin
Result := '';
i:= 1;
while (s[i]<>':') do
begin
Result:=Result+s[i];
i:=i+1;
end;
Result:=Result+':';
end;
procedure TForm1.WriteMciConfig;
{定义一个过程,向ini文件写一些配置信息,
以便系统能调用相应驱动程序来播放文件,
注意:如果不这样做Mediaplay控件打开某
些扩展名的文件时会发生什么MCI初始化
错误}
begin
WritePrivateProfileString('mci extensions', 'mpg', 'MPEGVideo', 'win.ini');
WritePrivateProfileString('mci extensions', 'dat', 'MPEGVideo', 'win.ini');
WritePrivateProfileString('mci extensions', 'mpv', 'MPEGVideo', 'win.ini');
WritePrivateProfileString('mci extensions', 'mpeg', 'MPEGVideo', 'win.ini');
WritePrivateProfileString('mci extensions', 'cjt', 'MPEGVideo', 'win.ini');
WritePrivateProfileString('mci extensions', 'avi', 'AVIVideo', 'win.ini');
WritePrivateProfileString('mci', 'MPEGVideo', 'mciqtz.drv', 'system.ini');
end;procedure TForm1.FormCreate(Sender: TObject);
begin
{创建窗体的同时获取当前路径}
pathstr:=ExtractFilePath(Application.Exename);
pathstr:=GetRoot(pathstr);
WriteMciConfig; //把dat文件类型写入win.ini
{根据屏幕分辨率调整窗体大小
Scaled:=TRUE;
if (screen.width <> ScreenWidth) then
begin
height := longint(height) * longint(screen.height) DIV ScreenHeight;
width := longint(width) * longint(screen.width) DIV ScreenWidth;
scaleBy(screen.width, ScreenWidth);}
//调入800*600的按钮
{
CoolButton1.Glyph.LoadFromFile(pathstr+'\VCD\res\button\86\主界面按钮\单元复习.bmp');
CoolButton2.Glyph.LoadFromFile(pathstr+'\VCD\res\button\86\主界面按钮\娱乐教学.bmp');
CoolButton3.Glyph.LoadFromFile(pathstr+'\VCD\res\button\86\主界面按钮\音乐1.bmp');
CoolButton4.Glyph.LoadFromFile(pathstr+'\VCD\res\button\86\主界面按钮\帮助.bmp');
CoolButton5.Glyph.LoadFromFile(pathstr+'\VCD\res\button\86\主界面按钮\关闭.bmp');end; }end;{模态调用窗体Form2,用以在主窗体前播放片头动画}
procedure TForm1.FormShow(Sender: TObject);
begin
try
Form2.ShowModal;
form1.MediaPlayer11.Open;
form1.MediaPlayer11.Play;
except //处理MCI(Media Control Interface)异常
on E:EMCIDeviceError do
ShowMessage('1formshow');
end;
end;
{循环播放背景音乐
procedure TForm1.MediaPlayer1Notify(Sender: TObject);
begin
try
if MediaPlayer1.Mode=mpstopped then
begin
MediaPlayer1.Notify:=true;
MediaPlayer1.Play;
end;
except //处理MCI(Media Control Interface)异常
on E:EMCIDeviceError do
ShowMessage(E.Message);
end;
end;
}
{声音开关}
procedure TForm1.CoolButton3Click(Sender: TObject);
begin
try
{i表示在主页面内音乐0开,1关}
if i=0 then
begin
MediaPlayer11.Close;
i:=1;
// if (screen.width <> ScreenWidth) then
// CoolButton3.Glyph.LoadFromFile(pathstr+'\VCD\res\button\86\主界面按钮\音乐2.bmp');
CoolButton3.Glyph.LoadFromFile(pathstr+'\VCD\res\button\main\music2.bmp');
end
else if i=1 then
begin
MediaPlayer11.open;
MediaPlayer11.play;
MediaPlayer11.Notify:=true;
i:=0;
//if (screen.width <> ScreenWidth) then
//CoolButton3.Glyph.LoadFromFile(pathstr+'\VCD\res\button\86\主界面按钮\音乐1.bmp');
CoolButton3.Glyph.LoadFromFile(pathstr+'\VCD\res\button\main\music1.bmp');
end;
except //处理MCI(Media Control Interface)异常
on E:EMCIDeviceError do
ShowMessage('1music');
end;
end;{关闭窗体的同时关闭背景音乐}
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
MediaPlayer11.Free;
Form2.MediaPlayer2.Free;
Form4.MediaPlayer41.Free;
Form4.MediaPlayer42.Free;
Form4.MediaPlayer43.Free;
Form4.MediaPlayer44.Free;
Form5.MediaPlayer5.Free;
Form6.MediaPlayer6.Free;
Form7.MediaPlayer7.Free;
Form12.MediaPlayer12.Free;
end;{单元复习按钮}
procedure TForm1.CoolButton1Click(Sender: TObject);
begin
try
form3.show;
if MediaPlayer11.Mode=mpplaying then {正在播放背景音乐}
begin
Form1.MediaPlayer11.stop;
Form1.MediaPlayer11.Close;
end;
except //处理MCI(Media Control Interface)异常
on E:EMCIDeviceError do
ShowMessage('1dyfx');
end;
end;{关闭按钮}
procedure TForm1.CoolButton5Click(Sender: TObject);
begin
form9.show;
end;{趣味数学按钮}
procedure TForm1.CoolButton2Click(Sender: TObject);
begin
try
Form4.show;
if MediaPlayer11.Mode=mpplaying then {正在播放背景音乐}
begin
Form1.MediaPlayer11.stop;
Form1.MediaPlayer11.Close;
end;
except //处理MCI(Media Control Interface)异常
on E:EMCIDeviceError do
ShowMessage('1qwsx');
end;
end;
{单击帮助按钮}
procedure TForm1.CoolButton4Click(Sender: TObject);
begin
Form10.show;
end;
procedure TForm1.CoolButton6Click(Sender: TObject);
begin
try
Form8.show;
FormNum:=1;
if MediaPlayer11.Mode=mpplaying then {正在播放背景音乐}
begin
Form1.MediaPlayer11.stop;
Form1.MediaPlayer11.Close;
end;
except //处理MCI(Media Control Interface)异常
on E:EMCIDeviceError do
ShowMessage('1help');
end;
end;end.
当程序运行到mediaplay1.open;
mediaplay1.play;的时候总是出现这样的错误:设备的名称已被此应用程序作别名,请使用唯一的别名
故障类EMCIDeviceError
我的运行环境是2000 新手不知道问题出在那 所以把全部代码都贴上了,请注意出现mediaplay1.open和mediaplay1.play的地方。interfaceuses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls, MPlayer, jpeg, StdCtrls, CoolButton,
Buttons;type
TForm1 = class(TForm)
MediaPlayer11: TMediaPlayer;
Image1: TImage;
CoolButton1: TCoolButton;
CoolButton2: TCoolButton;
CoolButton3: TCoolButton;
CoolButton4: TCoolButton;
CoolButton5: TCoolButton;
CoolButton6: TCoolButton;
procedure WriteMciConfig;
procedure FormCreate(Sender: TObject);
procedure FormShow(Sender: TObject);
//procedure MediaPlayer1Notify(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure CoolButton1Click(Sender: TObject);
procedure CoolButton3Click(Sender: TObject);
procedure CoolButton5Click(Sender: TObject);
procedure CoolButton2Click(Sender: TObject);
procedure CoolButton4Click(Sender: TObject);
procedure CoolButton6Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;var
Form1: TForm1;
PathBuffer: array[0..255] of char;
pathstr:string;
i:integer=0; {用来标识主画面背景音乐是否正在播放}
FormNum:integer=0; {用来标识是哪个窗口调用帮助窗口}
const
ScreenWidth: LongInt = 1024; {默认分辨率1024*768}
ScreenHeight: LongInt = 768;
implementation
uses unit2,unit3,unit4,unit5,unit6,unit7,unit8,unit9,unit12, Unit10;
{$R *.dfm}{取根路径的函数,如d:}
Function GetRoot(s: String) : string;
var i : integer;
begin
Result := '';
i:= 1;
while (s[i]<>':') do
begin
Result:=Result+s[i];
i:=i+1;
end;
Result:=Result+':';
end;
procedure TForm1.WriteMciConfig;
{定义一个过程,向ini文件写一些配置信息,
以便系统能调用相应驱动程序来播放文件,
注意:如果不这样做Mediaplay控件打开某
些扩展名的文件时会发生什么MCI初始化
错误}
begin
WritePrivateProfileString('mci extensions', 'mpg', 'MPEGVideo', 'win.ini');
WritePrivateProfileString('mci extensions', 'dat', 'MPEGVideo', 'win.ini');
WritePrivateProfileString('mci extensions', 'mpv', 'MPEGVideo', 'win.ini');
WritePrivateProfileString('mci extensions', 'mpeg', 'MPEGVideo', 'win.ini');
WritePrivateProfileString('mci extensions', 'cjt', 'MPEGVideo', 'win.ini');
WritePrivateProfileString('mci extensions', 'avi', 'AVIVideo', 'win.ini');
WritePrivateProfileString('mci', 'MPEGVideo', 'mciqtz.drv', 'system.ini');
end;procedure TForm1.FormCreate(Sender: TObject);
begin
{创建窗体的同时获取当前路径}
pathstr:=ExtractFilePath(Application.Exename);
pathstr:=GetRoot(pathstr);
WriteMciConfig; //把dat文件类型写入win.ini
{根据屏幕分辨率调整窗体大小
Scaled:=TRUE;
if (screen.width <> ScreenWidth) then
begin
height := longint(height) * longint(screen.height) DIV ScreenHeight;
width := longint(width) * longint(screen.width) DIV ScreenWidth;
scaleBy(screen.width, ScreenWidth);}
//调入800*600的按钮
{
CoolButton1.Glyph.LoadFromFile(pathstr+'\VCD\res\button\86\主界面按钮\单元复习.bmp');
CoolButton2.Glyph.LoadFromFile(pathstr+'\VCD\res\button\86\主界面按钮\娱乐教学.bmp');
CoolButton3.Glyph.LoadFromFile(pathstr+'\VCD\res\button\86\主界面按钮\音乐1.bmp');
CoolButton4.Glyph.LoadFromFile(pathstr+'\VCD\res\button\86\主界面按钮\帮助.bmp');
CoolButton5.Glyph.LoadFromFile(pathstr+'\VCD\res\button\86\主界面按钮\关闭.bmp');end; }end;{模态调用窗体Form2,用以在主窗体前播放片头动画}
procedure TForm1.FormShow(Sender: TObject);
begin
try
Form2.ShowModal;
form1.MediaPlayer11.Open;
form1.MediaPlayer11.Play;
except //处理MCI(Media Control Interface)异常
on E:EMCIDeviceError do
ShowMessage('1formshow');
end;
end;
{循环播放背景音乐
procedure TForm1.MediaPlayer1Notify(Sender: TObject);
begin
try
if MediaPlayer1.Mode=mpstopped then
begin
MediaPlayer1.Notify:=true;
MediaPlayer1.Play;
end;
except //处理MCI(Media Control Interface)异常
on E:EMCIDeviceError do
ShowMessage(E.Message);
end;
end;
}
{声音开关}
procedure TForm1.CoolButton3Click(Sender: TObject);
begin
try
{i表示在主页面内音乐0开,1关}
if i=0 then
begin
MediaPlayer11.Close;
i:=1;
// if (screen.width <> ScreenWidth) then
// CoolButton3.Glyph.LoadFromFile(pathstr+'\VCD\res\button\86\主界面按钮\音乐2.bmp');
CoolButton3.Glyph.LoadFromFile(pathstr+'\VCD\res\button\main\music2.bmp');
end
else if i=1 then
begin
MediaPlayer11.open;
MediaPlayer11.play;
MediaPlayer11.Notify:=true;
i:=0;
//if (screen.width <> ScreenWidth) then
//CoolButton3.Glyph.LoadFromFile(pathstr+'\VCD\res\button\86\主界面按钮\音乐1.bmp');
CoolButton3.Glyph.LoadFromFile(pathstr+'\VCD\res\button\main\music1.bmp');
end;
except //处理MCI(Media Control Interface)异常
on E:EMCIDeviceError do
ShowMessage('1music');
end;
end;{关闭窗体的同时关闭背景音乐}
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
MediaPlayer11.Free;
Form2.MediaPlayer2.Free;
Form4.MediaPlayer41.Free;
Form4.MediaPlayer42.Free;
Form4.MediaPlayer43.Free;
Form4.MediaPlayer44.Free;
Form5.MediaPlayer5.Free;
Form6.MediaPlayer6.Free;
Form7.MediaPlayer7.Free;
Form12.MediaPlayer12.Free;
end;{单元复习按钮}
procedure TForm1.CoolButton1Click(Sender: TObject);
begin
try
form3.show;
if MediaPlayer11.Mode=mpplaying then {正在播放背景音乐}
begin
Form1.MediaPlayer11.stop;
Form1.MediaPlayer11.Close;
end;
except //处理MCI(Media Control Interface)异常
on E:EMCIDeviceError do
ShowMessage('1dyfx');
end;
end;{关闭按钮}
procedure TForm1.CoolButton5Click(Sender: TObject);
begin
form9.show;
end;{趣味数学按钮}
procedure TForm1.CoolButton2Click(Sender: TObject);
begin
try
Form4.show;
if MediaPlayer11.Mode=mpplaying then {正在播放背景音乐}
begin
Form1.MediaPlayer11.stop;
Form1.MediaPlayer11.Close;
end;
except //处理MCI(Media Control Interface)异常
on E:EMCIDeviceError do
ShowMessage('1qwsx');
end;
end;
{单击帮助按钮}
procedure TForm1.CoolButton4Click(Sender: TObject);
begin
Form10.show;
end;
procedure TForm1.CoolButton6Click(Sender: TObject);
begin
try
Form8.show;
FormNum:=1;
if MediaPlayer11.Mode=mpplaying then {正在播放背景音乐}
begin
Form1.MediaPlayer11.stop;
Form1.MediaPlayer11.Close;
end;
except //处理MCI(Media Control Interface)异常
on E:EMCIDeviceError do
ShowMessage('1help');
end;
end;end.
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货