📄 realplayer.pas
字号:
unit Realplayer;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ComCtrls, StdCtrls, ToolWin, ExtCtrls, OleCtrls, Inifiles,
RealAudioObjects_TLB, ActnList, Menus;
type
TFormRealPlayer = class(TForm)
Panel1: TPanel;
Panel2: TPanel;
RealAudio1: TRealAudio;
OpenDialog1: TOpenDialog;
SaveDialog1: TSaveDialog;
PopupMenu1: TPopupMenu;
PopAbout: TMenuItem;
N1: TMenuItem;
PopPlay: TMenuItem;
PopPause: TMenuItem;
N3: TMenuItem;
PopAdd: TMenuItem;
PopDel: TMenuItem;
N4: TMenuItem;
Popexit: TMenuItem;
ActionList1: TActionList;
ActionClear: TAction;
ActionPlay: TAction;
ActionStop: TAction;
ActionOpen: TAction;
ActionSite: TAction;
ActionClose: TAction;
Cmb1: TComboBox;
BTNAdd: TButton;
BTN_AddSite: TButton;
Cmb2: TComboBox;
BTN_PlayFile: TButton;
BTN_FileStop: TButton;
BTN_LinkSite: TButton;
BTN_LinkClose: TButton;
BTN_FileDel: TButton;
BTN_SiteClear: TButton;
PopClear: TMenuItem;
ActionPause: TAction;
ActionDel: TAction;
ActionAbout: TAction;
ActionLink: TAction;
procedure ActionOpenExecute(Sender: TObject);
procedure ActionSiteExecute(Sender: TObject);
procedure ActionPlayExecute(Sender: TObject);
procedure BTNCloseClick(Sender: TObject);
procedure ActionClearExecute(Sender: TObject);
procedure ActionPauseExecute(Sender: TObject);
procedure ActionCloseExecute(Sender: TObject);
procedure PopAboutClick(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure ActionDelExecute(Sender: TObject);
procedure ActionAboutExecute(Sender: TObject);
procedure ActionStopExecute(Sender: TObject);
procedure ActionLinkExecute(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
private
{ Private declarations }
public
{ Public declarations }
RealName : Tinifile; //Real列表文件名
RealCount, RealIndex : Integer; //REAL文件播放记录
SiteCount, SiteIndex : Integer; //网址记录
end;
var
FormRealPlayer: TFormRealPlayer;
JlrFile : TextFile;
implementation
uses about, realmng;
{$R *.dfm}
procedure TFormRealPlayer.ActionOpenExecute(Sender: TObject);
var
FileTemp : String;
begin
OpenDialog1.Title := '请选取Real(*.rm;*.ram)文件';
OpenDialog1.Filter := 'Real文件(*.rm;*.ram)|*.rm;*.ram';
if OpenDialog1.Execute then
if OpenDialog1.FileName <> '' then
begin
FileTemp := OpenDialog1.FileName;
Cmb1.Items.Add(FileTemp);
RealName.WriteString('Real文件列表','No.['+inttostr(Cmb1.Items.Count-1)+']',FileTemp);
end;
Cmb1.ItemIndex := Cmb1.Items.Count-1;
RealCount := Cmb1.Items.Count;
RealIndex := Cmb1.ItemIndex;
RealName.WriteInteger('Real列表','文件数', RealCount);
RealName.WriteInteger('Real列表','文件号', RealIndex);
end;
procedure TFormRealPlayer.ActionSiteExecute(Sender: TObject);
begin
FormRealMng.Show;
end;
procedure TFormRealPlayer.ActionPlayExecute(Sender: TObject);
Var i: Integer;
FileTemp : String;
begin
i := Cmb1.ItemIndex;
FileTemp := Cmb1.Items.Strings[i];
RealAudio1.SetSource(FileTemp);
if RealAudio1.CanPlay then
RealAudio1.DoPlay;
end;
procedure TFormRealPlayer.BTNCloseClick(Sender: TObject);
begin
RealAudio1.FreeOnRelease;
close;
end;
procedure TFormRealPlayer.ActionClearExecute(Sender: TObject);
begin
if SiteCount <= 0 then exit; //如果列表中为空则退出
SiteCount := 0;
SiteIndex := -1;
RealName.WriteInteger('Real网址','网址数',SiteCount);
RealName.WriteInteger('Real网址','网址号',SiteIndex);
RealName.EraseSection('网址列表');
Cmb2.Clear;
end;
procedure TFormRealPlayer.ActionPauseExecute(Sender: TObject);
begin
if RealAudio1.CanPlayPause then
RealAudio1.DoPlayPause;
end;
procedure TFormRealPlayer.ActionCloseExecute(Sender: TObject);
begin
RealAudio1.FreeOnRelease;
close;
end;
procedure TFormRealPlayer.PopAboutClick(Sender: TObject);
begin
FormAbout.Show;
end;
procedure TFormRealPlayer.FormCreate(Sender: TObject);
var
i, j: Integer;
tempname1, tempname2: String;
begin
RealName := Tinifile.create(ExtractFilePath(paramstr(0))+'Media.Ini');
RealCount := RealName.ReadInteger('Real列表','文件数',0);
for j:=0 to RealCount-1 do
begin
tempname1 := RealName.ReadString('Real文件列表','No.['+inttostr(j)+']','');
Cmb1.Items.Add(tempname1);
end;
RealIndex := RealName.ReadInteger('Real列表','文件号',-1);
Cmb1.ItemIndex := RealIndex;
SiteCount := RealName.ReadInteger('Real网址','网址数',0);
for i:=0 to SiteCount-1 do
begin
tempname2 := RealName.ReadString('网址列表','No.['+inttostr(i)+']','');
Cmb2.Items.Add(tempname2);
end;
SiteIndex := RealName.ReadInteger('Real网址','网址号',-1);
Cmb2.ItemIndex := SiteIndex;
end;
procedure TFormRealPlayer.ActionDelExecute(Sender: TObject);
begin
if RealCount <= 0 then exit; //如果列表中为空则退出
RealCount := 0;
RealIndex := -1;
RealName.WriteInteger('Real列表','文件数',RealCount);
RealName.WriteInteger('Real列表','文件号',RealIndex);
RealName.EraseSection('Real文件列表');
Cmb1.Clear;
end;
procedure TFormRealPlayer.ActionAboutExecute(Sender: TObject);
begin
FormAbout.Show;
end;
procedure TFormRealPlayer.ActionStopExecute(Sender: TObject);
begin
With RealAudio1 do
if CanStop then
doStop;
end;
procedure TFormRealPlayer.ActionLinkExecute(Sender: TObject);
var
i : Integer;
Temp : String;
begin
i := Cmb2.ItemIndex;
Temp := Cmb2.Items.Strings[i];
if Temp <> '' then
RealAudio1.SetSource(Temp);
with RealAudio1 do
if CanPlay then
DoPlay;
end;
procedure TFormRealPlayer.FormClose(Sender: TObject;
var Action: TCloseAction);
begin
RealAudio1.DoPause;
RealAudio1.FreeOnRelease;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -