Структура файлов
/Play.M.exe
/Play.W.exe
/Module_Play.pcu
/Base/File
/Base/Command
/Base/play.jpg // фон
/Scripts/
uses
GraphABC,
Module_Play;
const
x = 400;
y = 170;
var
m : integer := -100;
Files : mas;
Cmand : masC;
CmandC : masH;
fname : string := 'Здесь будет обображаться имя файла';
Procedure Window ();
begin
SetWindowHeight (y);
SetWindowWidth (x);
SetWindowIsFixedSize (true);
SetWindowTitle ('PLAY! by cccc1808 v2.2');
SetWindowTop (50);
SetWindowLeft (ScreenWidth-(x+30));
SetPenWidth(5);
SetFontSize (12);
SetFontColor (clOrange);
SetPenColor (clSilver);
end;
function menu (Cmn : masH; f : string) : integer;
var
s : string;
i : integer;
m : integer := -100;
begin
FillWindow ('Base/play.jpg');
TextOut (10,5,'<<Управляй командами :.');
line (0,35,x,35);
TextOut (40,40,'<w - Список файлов');
TextOut (40,70,'<v - Список команд');
TextOut (15,100,'<Число - воспроизвести соответсвующий элемент');
TextOut (5,140,f);
//TextOut (340,150,'0 - Exit');
Line (0,65,x,65);
Line (0,90,x,90);
Line (0,130,x,130);
readln (s);
if s = '' then
s := '-50';
case s[1] of
'w' : m := -1;
'v' : m := -2;
'l' : m := -3;
'0'..'9' : m := StrToInt (s);
else
begin
for i := n1 to n2 do
if s[1] = Cmn[i] then
m := -i;
end;
end;
Result := m;
end;
function Run (a : Mas; p : integer) : string;
var
l : integer;
Name : string := 'NoName';
begin
l := Length (a);
if p <= l then
begin
p := p -1;
If FIleExists (a[p]) then
begin
Name := Fn (p);
Exec (a[p]);
end
else
Name := 'Not found';
end;
Result := Name;
end;
procedure PlayerP (a : integer; b : masC);
const
e = '.exe';
begin
a := Abs (a);
if FileExists (Ai+b[a]+e) then
Exec (Ai+b[a]+e);
end;
begin
Window ();
RBF (FileS);
RBC (Cmand);
RBH (CmandC);
While m <> 0 do
begin
m := menu(CmandC,fname);
case m of
-1 : Exec ('Play.W.exe','1');
-2 : Exec ('Play.W.exe','2');
-3 : Exec ('LinkOpen.exe');
-n2..-n1 : PlayerP (m,Cmand);
1..1000 : fname := Run(FileS,m);
end;
end;
CloseWindow;
end.
unit Module_Play;
interface
const
fl = 'Base/file';
Cm = 'Base/Command';
Ai = 'Scripts\';
n1 = 4; n2 = 14;
type
mas = array of string;
masC = array [n1..n2] of string;
masH = array [n1..n2] of char;
// - - - - - - - - - - -
procedure RBN (var a : mas);
procedure RBF (var a : mas);
procedure RBC (var a : masC);
procedure RBH (var a : masH);
function FN (p : integer) : string;
//-----------------------------------------------------------------
implementation
procedure RBN (var a : mas);
var
t : text;
l : integer;
begin
if FileExists (fl) then
begin
assign (t,fl);
reset (t);
l := 0;
While Not Eof (t) do
begin
l := l +1;
SetLength (a,l);
readln (t,a[l-1]);
readln (t);
end;
close (t);
end;
end;
procedure RBF (var a : mas);
var
t : text;
l : integer;
begin
if FileExists (fl) then
begin
assign (t,fl);
reset (t);
l := 0;
While Not Eof (t) do
begin
l := l +1;
SetLength (a,l);
readln (t);
readln (t,a[l-1]);
end;
close (t);
end;
end;
procedure RBC (var a : masC);
var
t : text;
i : integer;
begin
if FileExists (Cm) then
begin
assign (t,Cm);
reset (t);
for i := n1 to n2 do
begin
readln (t);
readln (t,a[i]);
end;
close (t);
end;
end;
procedure RBH (var a : masH);
var
t : text;
i : integer;
begin
if FileExists (Cm) then
begin
assign (t,Cm);
reset (t);
for i := n1 to n2 do
begin
readln (t,a[i]);
readln (t);
end;
close (t);
end;
end;
function FN (p : integer) : string;
var
t : text;
i : integer;
name : string;
begin
if FileExists (fl) then
begin
assign (t,fl);
reset (t);
i := 1;
While i <= p do
begin
readln (t);
readln (t);
i := i +1;
end;
readln (t,name);
Result := name;
close (t);
end;
end;
end.
uses
crt,
Module_Play;
var
m : string;
procedure WrF();
var
NameS : mas;
l,i : integer;
begin
ClrScr;
RBN (NameS);
l := Length (NameS);
if l <> 0 then
begin
writeln ('Base :');
for i := 0 to l-1 do
writeln (i+1,') ',NameS[i]);
end
else
writeln ('Base clear or error');
end;
procedure WrC ();
var
a : masC;
b : masH;
i : integer;
begin
ClrScr;
RBC (a);
RBH (b);
writeln ('Команда - дейтсвие');
for i := n1 to n2 do
writeln (b[i],' - ',a[i]);
end;
begin
m := ParamStr(1);
case m[1] of
'1' : WrF();
'2' : WrC();
end;
readln ();
end.
Пример файла с музыкой
Машина времени - костер
H:\Media\музыка\Машина времени - костер.mp3
Rogue Legacy
H:\Media\музыка\Rogue Legacy Original Soundtrack by Tettix & A Shell in the Pit (2013) [MP3, V0]\Rogue.aimppl
Пример файла команд
g
Play.or.Pause
t
Stop
>
Next
<
Prev
+
VolumeUp
-
VolumeDown
m
Mute
c
Playlist
b
Browser
r
Radio
l
OpenLink
Пример скриптов
@echo off
cd /d "C:\Program Files\AIMP3"
AIMP3.exe /PAUSE
echo Ok
@echo on
@echo off
cd /d "C:\Program Files\AIMP3"
AIMP3.exe /NEXT
echo Ok
@echo on
@echo off
cd /base
notepad file
@echo off
cd /d "C:\Program Files\AIMP3"
AIMP3.exe /NEXT
echo Ok
@echo on
@echo off
start http:\\vk.com
start http:\\mail.ru
|