⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 tmovie.pas

📁 这是一个非常好的教师和学生沟通用的电子教室!
💻 PAS
字号:
unit TMovie;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls, Buttons, OleCtrls, ExtCtrls, registry, 
  ComCtrls, MediaPlayer_TLB,  LMDCustomControl, LMDCustomPanel,
  LMDCustomTrackBar, LMDTrackBar, Mask, Menus, SharedResource, XPMenu,
  TFlatPanelUnit, TFlatSpeedButtonUnit, TFlatEditUnit, TFlatSpinEditUnit,
  SkinForm, VCLBase, AniCtrls, Volumes, MMObj, MMWheel, XP_Button, regions,
  EPLabels, EPCtrls, EffBtns, MMLEDS, MMPanel;
 type
  TTmovieF = class(TForm)
    OpenDialog1: TOpenDialog;
    Timer1: TTimer;
    Timer2: TTimer;
    TrackBar1: TLMDTrackBar;
    SharedResource1: TSharedResource;
    BitBtn5: TBitBtn;
    VolumeControl1: TVolumeControl;
    SpeedButton1: TSpeedButton;
    Timer3: TTimer;
    Panel1: TPanel;
    MediaPlay1: TMediaPlay;
    BitBtn1: TBitBtn;
    BitBtn2: TBitBtn;
    BitBtn3: TBitBtn;
    BitBtn6: TBitBtn;
    BitBtn7: TBitBtn;
    BitBtn4: TBitBtn;
    MMWheel1: TMMWheel;
    FlatSpinEditInteger1: TFlatSpinEditInteger;
    MaskEdit1: TMaskEdit;
    epRegionForm1: TepRegionForm;
    MMPanel1: TMMPanel;
    epRunStr1: TepRunStr;
    XPMenu1: TXPMenu;
    Panel2: TPanel;
    function My_ShareFileDir(FileName:String):Boolean;
    procedure BitBtn1Click(Sender: TObject);
    procedure BitBtn2Click(Sender: TObject);
    procedure BitBtn3Click(Sender: TObject);
    procedure BitBtn4Click(Sender: TObject);
    procedure BitBtn5Click(Sender: TObject);
    procedure BitBtn6Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure Timer1Timer(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure Timer2Timer(Sender: TObject);
    procedure BitBtn7Click(Sender: TObject);
    procedure TrackBar1MouseDown(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    procedure TrackBar1MouseUp(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    procedure MMWheel1Change(Sender: TObject);
    procedure Timer3Timer(Sender: TObject);

  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  TmovieF: TTmovieF;
  w_run: smallint;
  old_path: string; //上一次打开的目录
  computer_name, path_name: string;
implementation
uses main;


{$R *.DFM}

function TTMovief.My_ShareFileDir(FileName:String):Boolean;
const My_Sharename='WSHMPEG$';
begin
SharedResource1.Sharename:=My_Sharename;
SharedResource1.Unshare;
Sleep(100);
SharedResource1.Sharename:=My_Sharename;
SharedResource1.ResourcePath:=ExtractFileDir(FileName);
SharedResource1.Comment:='';
SharedResource1.SystemShare := True;
SharedResource1.MaxConnections:=-1;
SharedResource1.ResourceType := RTFolder;
SharedResource1.AccessType := ATReadOnly;
SharedResource1.Share;
Result:=True;
end;

procedure TTmovieF.BitBtn1Click(Sender: TObject);
var
  i: smallint;
  myreg: Tregistry;

begin
  if OpenDialog1.Execute then
  begin
    MediaPlay1.Visible := true;
   //取计算机名称
    myreg := Tregistry.create; //取计算机的名称
    myreg.rootkey := HKEY_LOCAL_MACHINE;
    if myreg.openkey('System\CurrentControlSet\control\ComputerName\ComputerName', true) then
    begin
      computer_name := myreg.readstring('ComputerName');
      myreg.closekey;
      myreg.free;
    end
    else
      showmessage('无法取得计算机的标识!');

    MediaPlay1.FileName := OpenDialog1.FileName; //放入文件
    Trackbar1.Minvalue := 0;
   // MediaPlay1.CurrentPosition := 0;
  //共享目录
    path_name := ExtractFilePath(OpenDialog1.filename);
    if old_path <> path_name then
    begin
       if My_ShareFileDir(path_name) then
      old_path := path_name;
    end;

    for i := 0 to student_count - 1 do
    begin
         //s_index := s_student[i];
      if (form1.ListView1.Items[i].imageindex <> 0) and (form1.listView1.Items[i].Selected = true) then
      begin
        wsh_socket[i].SendStr('/*csh*/:' + #13 + #10 + '打开影院' +
          '\\' + computer_name + '\WSHMPEG$\' + ExtractFilename(OpenDialog1.Filename));
        sleep(1);
      end;
    end;

    timer2.enabled := true;
    Bitbtn2.Enabled := true;
    Bitbtn3.Enabled := false;
    BItbtn4.Enabled := false;
    Bitbtn6.Enabled := false;
    Bitbtn7.enabled:=false;
    eprunstr1.Caption:='播放就绪';
  end;
end;

procedure TTmovieF.BitBtn2Click(Sender: TObject);
var
  i, play_count: smallint;
begin
  trackbar1.Enabled:=true;
  timer1.Enabled := true;
  w_run := 1;
  try
    play_count := flatspineditinteger1.Value;
  except
    showmessage('播放次数设置出错!');
    exit;
  end;
  if play_count = 0 then
    play_count := 1;

  for i := 0 to student_count - 1 do
  begin
         //s_index := s_student[i];
    if (form1.ListView1.Items[i].imageindex <> 0) and (form1.listView1.Items[i].Selected = true) then
      wsh_socket[i].SendStr('/*csh*/:' + #13 + #10 + '播放影院' + inttostr(play_count));
  end;

  MediaPlay1.PlayCount := play_count;

  MediaPlay1.play;
  Bitbtn3.Enabled := true;
  BItbtn4.Enabled := true;
  Bitbtn6.Enabled := true;
  bitbtn7.enabled:=true;
  eprunstr1.Caption:='播放中...';
end;

procedure TTmovieF.BitBtn3Click(Sender: TObject);
var
  i: smallint;
begin
  timer1.Enabled := false;
  w_run := 0;
  for i := 0 to student_count - 1 do
  begin
    if (form1.ListView1.Items[i].imageindex <> 0) and (form1.listView1.Items[i].Selected = true) then
      wsh_socket[i].SendStr('/*csh*/:' + #13 + #10 + '暂停影院');
  end;
 //w_pause:=1;
  MediaPlay1.Pause;
  eprunstr1.Caption:='播放被暂停';
 //w_pause:=0;
end;

procedure TTmovieF.BitBtn4Click(Sender: TObject);
var
  i: smallint;
begin
  trackbar1.Enabled:=false;
  for i := 0 to student_count - 1 do
  begin
         //s_index := s_student[i];
    if (form1.ListView1.Items[i].imageindex <> 0) and (form1.listView1.Items[i].Selected = true) then
      wsh_socket[i].SendStr('/*csh*/:' + #13 + #10 + '停止影院');
  end;
  timer1.Enabled := false;
  w_run := 0;
  MediaPlay1.Stop;
  MediaPlay1.CurrentPosition := 0;
  Trackbar1.Position := 0;
  Bitbtn3.Enabled := false;
  eprunstr1.Caption:='播放被停止';
end;

procedure TTmovieF.BitBtn5Click(Sender: TObject);
var
  i: smallint;
begin
//DeleteShare(Nil, 'WSHMPEG');
  for i := 0 to student_count - 1 do
  begin
         //s_index := s_student[i];
    if (form1.ListView1.Items[i].imageindex <> 0) and (form1.listView1.Items[i].Selected = true) then
      wsh_socket[i].SendStr('/*csh*/:' + #13 + #10 + '退出影院');
      wsh_socket[i].SendStr('/*csh*/:' + #13 + #10 + '注销系统');
  end;
  try
    timer1.Enabled := false;
    MediaPlay1.Stop;
  finally
    close;
  end;
end;

procedure TTmovieF.BitBtn6Click(Sender: TObject);
var
  i: smallint;
begin
  timer1.Enabled := true;
  w_run := 1;
  for i := 0 to student_count - 1 do
  begin
         //s_index := s_student[i];
    if (form1.ListView1.Items[i].imageindex <> 0) and (form1.listView1.Items[i].Selected = true) then
      wsh_socket[i].SendStr('/*csh*/:' + #13 + #10 + '继续影院');
  end;
  MediaPlay1.play;
  Bitbtn3.Enabled := true;
  eprunstr1.Caption:='播放中...';
end;

procedure TTmovieF.FormCreate(Sender: TObject);
begin
// w_pause:=0;
  //Maskedit1.Text := '1';
  flatspineditinteger1.Value :=1;
end;

procedure TTmovieF.Timer1Timer(Sender: TObject);
begin
  TrackBar1.Position := round(mediaPlay1.currentposition);
end;

procedure TTmovieF.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  old_path := '';
  SharedResource1.Sharename:='WSHMPEG$';
  SharedResource1.Unshare;
end;

procedure TTmovieF.Timer2Timer(Sender: TObject);
begin
  if mediaplay1.duration > 3 then
  begin
    timer2.enabled := false;
    Trackbar1.Maxvalue := round(MediaPlay1.Duration);
  end;
end;

procedure TTmovieF.BitBtn7Click(Sender: TObject);
begin
  MediaPlay1.DisplaySize := mpFullScreen;
end;

procedure TTmovieF.TrackBar1MouseDown(Sender: TObject;
  Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
  var
   i:smallint;
begin
  timer1.Enabled:=false;
  MediaPlay1.Pause;
   for i := 0 to student_count - 1 do
  begin
    if (form1.ListView1.Items[i].imageindex <> 0) and (form1.listView1.Items[i].Selected = true) then
      wsh_socket[i].SendStr('/*csh*/:' + #13 + #10 + '暂停影院');
  end;
end;

procedure TTmovieF.TrackBar1MouseUp(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
  var
   i:smallint;
begin
   mediaplay1.CurrentPosition:=trackbar1.Position;
     for i := 0 to student_count - 1 do
    begin
      if (form1.ListView1.Items[i].imageindex <> 0) and (form1.listView1.Items[i].Selected = true) then
        wsh_socket[i].SendStr('/*csh*/:' + #13 + #10 + '影院起点' + inttostr(trackbar1.Position));
    end;
   timer1.Enabled:=true;
end;

procedure TTmovieF.MMWheel1Change(Sender: TObject);
begin
  volumecontrol1.WaveVolume :=round(mmwheel1.Value);
end;

procedure TTmovieF.Timer3Timer(Sender: TObject);
var
   i:smallint;
begin
  for i := 0 to student_count - 1 do
  begin
  wsh_socket[i].SendStr('/*csh*/:' + #13 + #10 + '影院时间' + inttostr(trackbar1.Position));
  end;
end;

end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -