首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

怎么调用TreeView1Change这个过程

2012-10-10 
怎样调用TreeView1Change这个过程?我是delphi初学者,学习中碰到个问题。自己写个媒体播放机,代码如下:varFo

怎样调用TreeView1Change这个过程?
我是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过程!这里不知如何调用
望帮助.


[解决办法]
TreeView1Change(TreeView1,nil);
[解决办法]
先求出你点击的Node; TreeView1Change(TreeView1,Node);

不过点击的node改变了,TreeView1Change会自动触发,不用另外调用
[解决办法]
提供一个TWindowsMediaPlayer应用的较为完整工程让你参考:

新建工程、双击窗体、用下列代码覆盖Unit1:

Delphi(Pascal) code
unit Unit1;interfaceuses  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. 

热点排行