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

📄 main.~pas

📁 超级播放器 -- 软件特点 -- 功能齐全 操作简便 绿色环保
💻 ~PAS
📖 第 1 页 / 共 5 页
字号:
unit main;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ComCtrls, MPlayer, ExtCtrls, Buttons, Grids, Menus,MMSystem
  ,ShellAPI,FileCtrl,StrUtils, ExtDlgs,jpeg, ValEdit,IMCode,DateUtils,Media
  ,Registry,Math, IdGlobal;  //XPMenu

Const APP_TITLE='超级播放器';
const MyIcoMes=WM_USER+90;
const MediaAliasName='MyMp3';
Const TempMedia='TempMp3';
const ModeStr:array[TMPModes] of string=('未准备.', '已停止.', '正在播放...'
               , '记录中...', '搜索中...', '暂停中...', '已打开.');
const SIG_MYFILE = 'XWWang';
const k:array [TMPDeviceTypes] of string =('dtAutoSelect', 'dtAVIVideo', 'dtCDAudio'
   , 'dtDAT', 'dtDigitalVideo', 'dtMMMovie', 'dtOther', 'dtOverlay', 'dtScanner'
   , 'dtSequencer', 'dtVCR', 'dtVideodisc', 'dtWaveAudio');

type
  HMSRec = record
    Hours: byte;
    Minutes: byte;
    Seconds: byte;
    NotUsed: byte;
  end;


  TID3Tag=Record
    ID:string[3];
    Title:string[30];
    Artist:string[30];
    Album:string[30];
    Year:string[4];
    Comment:string[30];
    Genre:byte;
  end;
 {
  TID3Tag=Record
    ID:array[0..2] of char;
    Title:array[0..29] of char;
    Artist:array[0..29] of char;
    Album:array[0..29] of char;
    Year:array[0..3] of char;
    Comment:array[0..29] of char;
    Genre:byte;
  end;
  }
  TID3Tag2=Packed Record
    ID:array[0..2] of char;
    Title:array[0..29] of char;
    Artist:array[0..29] of char;
    Album:array[0..29] of char;
    Year:array[0..3] of char;
    Comment:array[0..29] of char;
    Genre:byte;
  end;



  TplayerState=(psPlaying,psPaused,psStopped,psClosed);
  TMainFrm = class(TForm)
    OpenDialog1: TOpenDialog;
    PopupMenu1: TPopupMenu;
    ReloadMusicInfoMnu: TMenuItem;
    TitleBar: TLabel;
    SpeedButton2: TSpeedButton;
    SpeedButton1: TSpeedButton;
    TitleSign: TLabel;
    Label2: TLabel;
    MoveTitle: TLabel;
    PopupMenu2: TPopupMenu;
    mnuShowPlaytime: TMenuItem;
    mnuShowlesttime: TMenuItem;
    Label24: TLabel;
    Label25: TLabel;
    Label26: TLabel;
    N1: TMenuItem;
    N2: TMenuItem;
    N3: TMenuItem;
    N31: TMenuItem;
    PopupMenu3: TPopupMenu;
    MenuItem1: TMenuItem;
    MenuItem2: TMenuItem;
    MenuItem5: TMenuItem;
    N21: TMenuItem;
    PopupMenu5: TPopupMenu;
    N7: TMenuItem;
    N8: TMenuItem;
    N9: TMenuItem;
    N10: TMenuItem;
    PopupMenu6: TPopupMenu;
    mnuPlyOrder: TMenuItem;
    mnuPlyRand: TMenuItem;
    mnuPlyRepeat: TMenuItem;
    mnuPlyNone: TMenuItem;
    N11: TMenuItem;
    N12: TMenuItem;
    main_pop: TPopupMenu;
    pop_Show: TMenuItem;
    N13: TMenuItem;
    N14: TMenuItem;
    N15: TMenuItem;
    RadioButton4: TRadioButton;
    RadioButton5: TRadioButton;
    RadioButton6: TRadioButton;
    PlayOrderLbl: TLabel;
    Label6: TLabel;
    bar: TImage;
    Label7: TLabel;
    Label8: TLabel;
    Label9: TLabel;
    Label10: TLabel;
    Label11: TLabel;
    Label18: TLabel;
    Label19: TLabel;
    Label20: TLabel;
    Label21: TLabel;
    Label22: TLabel;
    Label23: TLabel;
    playBtn: TSpeedButton;
    pauseBtn: TSpeedButton;
    stopBtn: TSpeedButton;
    prevBtn: TSpeedButton;
    NextBtn: TSpeedButton;
    BackBtn: TSpeedButton;
    StepBtn: TSpeedButton;
    EjectBtn: TSpeedButton;
    dot: TImage;
    Voltimer: TTimer;
    N32: TMenuItem;
    N16: TMenuItem;
    N17: TMenuItem;
    N18: TMenuItem;
    N19: TMenuItem;
    EditMnu: TMenuItem;
    N24: TMenuItem;
    viewMenu: TMenuItem;
    N25: TMenuItem;
    PopupMenu8: TPopupMenu;
    MnuAddDir: TMenuItem;
    MnuAddFiles: TMenuItem;
    N27: TMenuItem;
    N28: TMenuItem;
    N20: TMenuItem;
    N26: TMenuItem;
    N29: TMenuItem;
    N30: TMenuItem;
    mnuMoveItem: TMenuItem;
    Panel7: TPanel;
    Image1: TImage;
    Label13: TLabel;
    Panel8: TPanel;
    Image2: TImage;
    Label14: TLabel;
    lblTime: TLabel;
    Panel6: TPanel;
    lbSoundLR: TLabel;
    big1: TSpeedButton;
    big2: TSpeedButton;
    Image3: TImage;
    SpeedButton4: TSpeedButton;
    Notebook1: TNotebook;
    ListBox1: TListBox;
    SpeedButton5: TSpeedButton;
    PopupMenu9: TPopupMenu;
    N110: TMenuItem;
    N210: TMenuItem;
    backimg: TImage;
    Bevel2: TBevel;
    Bevel3: TBevel;
    Bevel7: TBevel;
    Bevel4: TBevel;
    Bevel5: TBevel;
    Bevel1: TBevel;
    LoadSBtn: TSpeedButton;
    addSBtn: TSpeedButton;
    delSBtn: TSpeedButton;
    SaveSBtn: TSpeedButton;
    MoveItemSBtn: TSpeedButton;
    LblSelSong: TLabel;
    PYEdit: TEdit;
    Bevel8: TBevel;
    Bevel9: TBevel;
    OpenPicDlg: TOpenPictureDialog;
    MnuSetBackimg: TMenuItem;
    SpeedButton6: TSpeedButton;
    SortSBtn: TSpeedButton;
    ProgressBar1: TProgressBar;
    PopupMenu10: TPopupMenu;
    N4: TMenuItem;
    N33: TMenuItem;
    Bevel10: TBevel;
    ErrLb: TLabel;
    belTitle: TBevel;
    mnuAbout: TMenuItem;
    mnuOnTop: TMenuItem;
    Timer2: TTimer;
    ModeString: TLabel;
    selitem: TLabel;
    regisyslb: TLabel;
    LbBack: TLabel;
    mnulistBack: TMenuItem;
    showLyricEditorSbtn: TSpeedButton;
    mnuLyricBox: TMenuItem;
    Bevel11: TBevel;
    Panel4: TPanel;
    sglist: TStringGrid;
    ScrollBarPnl: TPanel;
    Shape1: TShape;
    Shape2: TShape;
    Shape3: TShape;
    Shape4: TShape;
    N5: TMenuItem;
    N6: TMenuItem;
    N22: TMenuItem;
    Bevel12: TBevel;
    Label1: TLabel;
    Panel2: TPanel;
    VolLbl: TLabel;
    VolImg: TImage;
    Timer1: TTimer;
    N23: TMenuItem;
    menu1: TMenuItem;
    menu2: TMenuItem;
    menu3: TMenuItem;
    menu4: TMenuItem;
    menu5: TMenuItem;
    menu6: TMenuItem;
    menu7: TMenuItem;
    menu8: TMenuItem;
    menu9: TMenuItem;
    menu10: TMenuItem;
    menu11: TMenuItem;
    HideColGrid: TStringGrid;
    AudioFTList: TListBox;
    VideoFTList: TListBox;
    GenreCmbBox: TComboBox;
    procedure MediaPlayer1Notify(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure ListBox1DblClick(Sender: TObject);
    procedure ListBox1DrawItem(Control: TWinControl; Index: Integer;
      Rect: TRect; State: TOwnerDrawState);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure PausebtnClick(Sender: TObject);
    procedure StopBtnClick(Sender: TObject);
    procedure PlayBtnClick(Sender: TObject);
    procedure ListBox1Click(Sender: TObject);
    procedure PrevBtnClick(Sender: TObject);
    procedure StepBtnClick(Sender: TObject);
    procedure NextBtnClick(Sender: TObject);
    procedure FormResize(Sender: TObject);
    procedure addSBtnClick(Sender: TObject);
    procedure delSBtnClick(Sender: TObject);
    procedure SaveSBtnClick(Sender: TObject);
    procedure LoadSBtnClick(Sender: TObject);
    procedure ListBox1KeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure ListBox1KeyPress(Sender: TObject; var Key: Char);
    procedure sglistDrawCell(Sender: TObject; ACol, ARow: Integer;
      Rect: TRect; State: TGridDrawState);
    procedure ReloadMusicInfoMnuClick(Sender: TObject);
    procedure RadioButton4Click(Sender: TObject);
    procedure sglistDblClick(Sender: TObject);
    procedure sglistKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure FormKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure TitleBarMouseDown(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    procedure SpeedButton1Click(Sender: TObject);
    procedure SpeedButton2Click(Sender: TObject);
    procedure TitleSignDblClick(Sender: TObject);
    procedure mnuShowPlaytimeClick(Sender: TObject);
    procedure Label24MouseDown(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    procedure Label26MouseDown(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    procedure N1Click(Sender: TObject);
    procedure EjectBtnClick(Sender: TObject);
    procedure N7Click(Sender: TObject);
    procedure lblTimeClick(Sender: TObject);
    procedure lbSoundLRClick(Sender: TObject);
    procedure dotMouseDown(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    procedure dotMouseUp(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    procedure dotMouseMove(Sender: TObject; Shift: TShiftState; X,
      Y: Integer);
    procedure Label2MouseDown(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    procedure VolImgMouseDown(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    procedure VolLblMouseDown(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    procedure PlayOrderLblClick(Sender: TObject);
    procedure mnuPlyOrderClick(Sender: TObject);
    procedure FormDestroy(Sender: TObject);
    procedure FormHide(Sender: TObject);
    procedure FormShow(Sender: TObject);
    procedure pop_ShowClick(Sender: TObject);
    procedure N13Click(Sender: TObject);
    procedure VoltimerTimer(Sender: TObject);
    procedure PYEditChange(Sender: TObject);
    procedure PYEditKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure N21Click(Sender: TObject);
    procedure barMouseDown(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    procedure sglistSetEditText(Sender: TObject; ACol, ARow: Integer;
      const Value: String);
    procedure sglistGetEditText(Sender: TObject; ACol, ARow: Integer;
      var Value: String);
    procedure N32Click(Sender: TObject);
    procedure N16Click(Sender: TObject);
    procedure EditMnuClick(Sender: TObject);
    procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
    procedure Panel6MouseDown(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    procedure MnuAddFilesClick(Sender: TObject);
    procedure MnuAddDirClick(Sender: TObject);
    procedure mnuMoveItemClick(Sender: TObject);
    procedure Label13MouseDown(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    procedure Label14MouseDown(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    procedure PlayOrderLblMouseMove(Sender: TObject; Shift: TShiftState; X,
      Y: Integer);
    procedure PlayOrderLblMouseLeave(Sender: TObject);
    procedure SpeedButton4Click(Sender: TObject);
    procedure sglistRowMoved(Sender: TObject; FromIndex, ToIndex: Integer);
    procedure N210Click(Sender: TObject);
    procedure MnuSetBackimgClick(Sender: TObject);
    procedure sglistMouseMove(Sender: TObject; Shift: TShiftState; X,
      Y: Integer);
    procedure PYEditExit(Sender: TObject);
    procedure SpeedButton6Click(Sender: TObject);
    procedure LblSelSongDblClick(Sender: TObject);
    procedure mnuOrdbyDirMPClick(Sender: TObject);
    procedure mnuOrdbyDirXZClick(Sender: TObject);
    procedure SortSBtnClick(Sender: TObject);
    procedure sglistTopLeftChanged(Sender: TObject);
    procedure mnuAboutClick(Sender: TObject);
    procedure mnuOnTopClick(Sender: TObject);
    procedure mnulistBackClick(Sender: TObject);
    procedure Timer2Timer(Sender: TObject);
    procedure SpeedButton5MouseDown(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    procedure Shape2MouseDown(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    procedure Shape2MouseMove(Sender: TObject; Shift: TShiftState; X,
      Y: Integer);
    procedure Shape2MouseUp(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    procedure Shape1MouseDown(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    procedure showLyricEditorSbtnClick(Sender: TObject);
    procedure mnuLyricBoxClick(Sender: TObject);
    procedure Shape3MouseDown(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    procedure Shape3MouseUp(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    procedure sglistMouseDown(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    procedure Label1MouseDown(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    procedure Label1MouseMove(Sender: TObject; Shift: TShiftState; X,
      Y: Integer);
    procedure Label1MouseUp(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    procedure Timer1Timer(Sender: TObject);
    procedure menu1Click(Sender: TObject);
    procedure sglistColumnMoved(Sender: TObject; FromIndex,
      ToIndex: Integer);
    procedure HideColGridMouseDown(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    procedure sglistSelectCell(Sender: TObject; ACol, ARow: Integer;
      var CanSelect: Boolean);
    procedure GenreCmbBoxExit(Sender: TObject);

  private
    { Private declarations }
    Deviceid:integer;
    winWidth,winHeight,winLeft,winTop:integer; //拖动改变窗口时
    Cur_X,Cur_Y:integer;
    GenreNameList:TStringList;
    procedure Readlist;
    procedure Savelist;
    procedure ReadList2;
    Procedure Savelist2;
    procedure ResetNo(start:integer);
    function GetFilename(index:integer):string;
    Function Lese_ID3Tag(var ID3Tag:TID3Tag;FileName:string):boolean;
    Function Lese_ID3Tag2(var ID3Tag:TID3Tag2;FileName:string):boolean;

    procedure updateTimerBar;
    procedure IniVolume;

    procedure VolumeChg(Sender: TObject);
    Function Addfile(filename:string):integer;
    procedure setfileattr(filename:string;fileattr:word;addattr:boolean);
    function searchpath(path:string;vStrs:TStrings;includeSubDir:boolean):Boolean;
    procedure WMMOVE(var Msg: TMessage); message WM_MOVE;
    function GetCurLyric(var LyricStr:string; MPos:Longint):boolean;
    function existsAppKey:Boolean;
    function GetSysDir: String;
    Procedure updateUpDownPos;
    function GetGenreName(index:integer):string;
    Function GetGenreIndex(GenreName:string):integer;
  public
    { Public declarations }
    oldval:string;
    pressDot,pressDotScroll:boolean;//
    filenamechg:boolean;
    listChged:boolean;//list内容是否被修改
    pd_X:integer;
    BeforepressDotState:TplayerState;
    playerState:TplayerState ;
    playfilename:string;
    movePos:integer;
    showfilename:string;
    openCdDoor:boolean;
    linkDisplayScr:integer;//是否吸住播放屏幕  0:没有,1:右上,2:上
    playItem:integer;
    oldFormHeight:integer; //隐藏清单时的窗体高度

    fileOpened:boolean; //是否已打开媒体文件
    filelength:longint; //毫秒
    framelength:longint;//桢

    ListBmp:TBitmap;

    HaveLyric:boolean;
    Lyric:TStrings;
    LyricIndex:integer;

    procedure showMode;
//    sglistimg:TBitmap;
//    procedure WmNCHitTest(var Msg: TWMNCHitTest); message WM_NCHITTEST;
    procedure MyIcoMesDo(var Msg : TMessage);Message MyIcoMes;  //托盘图标的返回消息
    procedure WMDropFiles(var Msg : TMessage); message WM_DROPFILES;  //拖动文件消息
     function GetPYIndexChar( hzchar:string):char;
   function chintoeng(chinese:string):string;
    function GetColIndex(strgrid:Tstringgrid;vTitle:String):integer;
    procedure closeMedia;
    procedure MoveMedia(toWhere:longint);
    function isVideoFile(itemindex:integer):boolean;
    procedure readSysInfo;
    procedure SaveSysInfo;

⌨️ 快捷键说明

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