我是delphi初学者,学习中碰到个问题。
自己写个媒体播放机,代码如下:
var
Form1: TForm1;
i:integer;
implementation
{$R *.dfm}procedure TForm1.WindowsMediaPlayer1StatusChange(Sender: TObject);
begin
if windowsmediaplayer1.status='已停止' then
begin
treeview1.SetFocus;
TreeView1.Selected.SelectedIndex:=i+1; //调用treeview1change过程!
end;
end;procedure TForm1.TreeView1Change(Sender: TObject; Node: TTreeNode);
begin
if treeview1.Selected.SelectedIndex = 2 then
begin
windowsmediaplayer1.URL:='http://hcflv.yinyuetai.com/uploads/videos/common/8CCA012F130824FAEE52143CA4AFEB06.flv?sc=e4f1278199939bb9&br=741&ptp=mv&rd=yinyuetai.com';
i:=2;
end;
if treeview1.Selected.SelectedIndex = 3 then
begin
windowsmediaplayer1.URL:='http://hcflv.yinyuetai.com/uploads/videos/common/133F012ECC9C54D14720F163BDF28D7E.flv?sc=0c519faff55e0f11&br=755&ptp=mv&rd=yinyuetai.com';
i:=3;
end;
end;
end.其中//调用treeview1change过程!这里不知如何调用
望帮助.
自己写个媒体播放机,代码如下:
var
Form1: TForm1;
i:integer;
implementation
{$R *.dfm}procedure TForm1.WindowsMediaPlayer1StatusChange(Sender: TObject);
begin
if windowsmediaplayer1.status='已停止' then
begin
treeview1.SetFocus;
TreeView1.Selected.SelectedIndex:=i+1; //调用treeview1change过程!
end;
end;procedure TForm1.TreeView1Change(Sender: TObject; Node: TTreeNode);
begin
if treeview1.Selected.SelectedIndex = 2 then
begin
windowsmediaplayer1.URL:='http://hcflv.yinyuetai.com/uploads/videos/common/8CCA012F130824FAEE52143CA4AFEB06.flv?sc=e4f1278199939bb9&br=741&ptp=mv&rd=yinyuetai.com';
i:=2;
end;
if treeview1.Selected.SelectedIndex = 3 then
begin
windowsmediaplayer1.URL:='http://hcflv.yinyuetai.com/uploads/videos/common/133F012ECC9C54D14720F163BDF28D7E.flv?sc=0c519faff55e0f11&br=755&ptp=mv&rd=yinyuetai.com';
i:=3;
end;
end;
end.其中//调用treeview1change过程!这里不知如何调用
望帮助.
TreeView1Change(TreeView1,下一个node);
或者直接选中下一个node就会触发change事件
treeview的焦点转到下一首歌的名字上
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs,OleCtrls,WMPLib_TLB, StdCtrls, ExtCtrls, ComCtrls;type
TForm1 = class(TForm)
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
procedure Bttn_playClick(Sender: TObject);
procedure Bttn_stopClick(Sender: TObject);
procedure Bttn_listClick(Sender: TObject);
procedure TreeViewChange(Sender: TObject; Node: TTreeNode);
procedure WindowsMediaPlayerStatusChange(Sender: TObject);
procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
procedure FormResize(Sender: TObject);
public
{ Public declarations }
end;TLocOleCtrl = Class (TOleControl);
var
Form1: TForm1;implementation
{$R *.dfm}
var ls:Tstringlist;
TreeView: TTreeView;
WindowsMediaPlayer: TWindowsMediaPlayer;
Panel: TPanel;
Bttn_list: TButton;
Bttn_play: TButton;
Bttn_stop: TButton;procedure TForm1.FormCreate(Sender: TObject);
begin
Width:=450;
Height:=330;
Position:=poScreenCenter;
Caption:='中国软件研发联盟Q群122058606__广州佬';
OnCloseQuery:=FormCloseQuery;
OnResize:=FormResize;
ls:=Tstringlist.Create;
Panel:=TPanel.Create(self);
Panel.Parent:=Form1;
Panel.Height:=50;
Panel.Align:=alBottom;
Panel.Color:=clSkyBlue;
Bttn_play:=TButton.Create(Panel);
Bttn_play.Parent:=Panel;
Bttn_play.Caption:='播放';
Bttn_play.Left:=16;
Bttn_play.Top:=16;
Bttn_play.OnClick:=Bttn_playClick;
Bttn_stop:=TButton.Create(Panel);
Bttn_stop.Parent:=Panel;
Bttn_stop.Caption:='停止';
Bttn_stop.Left:=150;
Bttn_stop.Top:=16;
Bttn_stop.OnClick:=Bttn_stopClick;
Bttn_list:=TButton.Create(Panel);
Bttn_list.Parent:=Panel;
Bttn_list.Caption:='列表';
Bttn_list.Left:=345;
Bttn_list.Top:=16;
Bttn_list.OnClick:=Bttn_listClick;
TreeView:=TTreeView.Create(self);
TreeView.Parent:=Form1;
TreeView.Align:=alRight;
TreeView.Width:=150;
TreeView.OnChange:=TreeViewChange;
WindowsMediaPlayer:=TWindowsMediaPlayer.Create(self);
WindowsMediaPlayer.Parent:=Form1;
WindowsMediaPlayer.Align:=alClient;
WindowsMediaPlayer.OnStatusChange:=WindowsMediaPlayerStatusChange;
end;procedure TForm1.WindowsMediaPlayerStatusChange(Sender: TObject);
var i:integer;
begin
if windowsmediaplayer.status='正在更改媒体...' then begin
if windowsmediaplayer.Tag<>-1 then begin
i:=ls.IndexOf(windowsmediaplayer.currentMedia.sourceURL);
if i>-1 then begin
TreeView.Selected:=TreeView.Items.Item[i];
TreeView.SetFocus;
end;
end;
end;
windowsmediaplayer.Tag:=0;
end;procedure TForm1.Bttn_listClick(Sender: TObject);
var i:integer;
s,exs:string;
OpenDialog:TOpenDialog;
begin
OpenDialog:=TOpenDialog.Create(self);
with OpenDialog do begin
Options:=[ofAllowMultiSelect];//允许多选
FilterIndex :=8;
Filter :='mp3File(*.mp3)|*.mp3|MidFile(*.mid)|*.mid|wmaFile(*.wma)|*.wma|FlvFile(*.flv)|'
+'*.flv|MpgFile(*.mpg)|*.mpg|AviFile(*.avi)|*.avi|rmFile(*rm)|*.rm';
if Execute then begin
TreeView.Items.Clear;
ls.Clear;
ls.Assign(Files);
for i:=0 to Files.Count-1 do begin
windowsmediaplayer.currentPlaylist.appendItem(
windowsmediaplayer.newMedia(Files.Strings[i]));
s:=ExtractFileName(Files.Strings[i]);
exs:=ExtractFileExt(Files.Strings[i]);
if exs<>'' then Delete(s,pos(exs,s),length(exs));
TreeView.Items.AddChild(nil,s);
end;
end;
TreeView.SetFocus;
end;
end;procedure TForm1.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin
WindowsMediaPlayer.OnStatusChange:=nil;
end;procedure TForm1.FormResize(Sender: TObject);
begin
if (not Visible) or (WindowsMediaPlayer=nil) then exit;
TLocOleCtrl(WindowsMediaPlayer).OnPosRectChange(Rect(0,0,ClientWidth-150,ClientHeight-20));
end;procedure TForm1.Bttn_playClick(Sender: TObject);
begin
windowsmediaplayer.controls.play;
end;procedure TForm1.Bttn_stopClick(Sender: TObject);
begin
windowsmediaplayer.controls.stop;
end;procedure TForm1.TreeViewChange(Sender: TObject; Node: TTreeNode);
begin
if windowsmediaplayer.Tag=-1 then exit;
windowsmediaplayer.Tag:=-1;
windowsmediaplayer.controls.playItem(windowsmediaplayer.currentPlaylist.Item[TreeView.Selected.Index]);
end;end.