请帮新手,以下程序为啥不行?(0分)

  • 主题发起人 主题发起人 lwslws0208
  • 开始时间 开始时间
L

lwslws0208

Unregistered / Unconfirmed
GUEST, unregistred user!
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, jpeg, ExtCtrls, MPlayer;
type
Tform1 = class(TForm)
Button1: TButton;
Panel1: TPanel;
MediaPlayer1: TMediaPlayer;
procedure Button1Click(Sender: TObject);
procedure FormActivate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
form1: Tform1;
implementation
{$R *.DFM}
procedure Tform1.Button1Click(Sender: TObject);
begin
//退出系统
CLOSE
end;

procedure Tform1.FormActivate(Sender: TObject);
begin
mediaplayer1.FileName:=ExtractFilePath(ParamStr(0))+'lws/03.avi';//这不行????
mediaplayer1.Open;
mediaplayer1.Play;
end;

end.
 
文件路径不对吧。
 
用extrafilepath(application.exename)看看,最好把mediaplayer1.filename输出看看
 
mediaplayer1.FileName:=ExtractFilePath(ParamStr(0))+'lws/03.avi';//这不行????
ExtractFilePath 得出的结果后面是没有反斜杠的,你仔细检查一下,
如果lws是你自己的子目录,则使用 + '/lws/03.avi';
 
mediaplayer1.FileName:=ExtractFilePath(ParamStr(0))+'lws/03.avi'中
的ParamStr(0)有问题。
 
FileName := 'C:/03.avi';
if FileExists(FileName) then
FileName 里的文件应该存在才行啊
begin
MediaPlayer1.Filename := FileName;
...
....
end;
 
判断一下ExtractFilePath(ParamStr(0))是否以/结尾,如果是则为lws/03.avi,如果不是
则为/lws/03.avi,因为存在两种情况:c:/ 与 c:/abc
 
delphi5 及以前版本ExtractFilePath返回值最后都带'/', 我想后继版本不可能改变这个吧。
所以你的问题只要看看当前应用程序所在目录下是否有lws子目录及子目录中是否包含03.avi,以及03.avi是否是windows的媒体播放器所支持的格式即可。
 
Another_eYes 说的是正确的,
我把 ExtractFilePath 和 ExtractFileDir 一时搞混了 [:(]
 
后退
顶部