📄 tmovie.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 + -