?? unit_main.~pas
字號:
//******************************************************************************
// 模塊簡介 //
// 本模塊封裝了Delphi編程過程中的許多函數和Windows API函數有數學,字符, //
//多媒體等方方面面.通過調用本模塊能加速您的程序開發速度.本模塊是我多年的 //
//編程技巧總結并且沒有任何限制喜歡的朋友可以任意使用和傳遞復制. //
// 作者:朱曉磊 2002.04.06 //
//******************************************************************************
unit Unit_Main;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, ExtCtrls, PubUnit, Buttons, jpeg, Menus, CheckLst, ExtDlgs,
MPlayer;
type
TFrm_Main = class(TForm)
Panel_Main: TPanel;
Label1: TLabel;
Label2: TLabel;
FreqLabel: TLabel;
LengthLabel: TLabel;
Panel_Biao: TPanel;
OpenDialog_S: TOpenDialog;
OpenBtn: TSpeedButton;
PlayBtn: TSpeedButton;
PauseBtn: TSpeedButton;
StopBtn: TSpeedButton;
ExitBtn: TSpeedButton;
OpenDialog_M: TOpenDialog;
Image_bmp: TImage;
Sp_Xia: TSpeedButton;
Sp_Shang: TSpeedButton;
Panel_JinDu: TPanel;
Shape1: TShape;
Panel_QuMu: TPanel;
Panel_Curent: TPanel;
Panel_Sum: TPanel;
Panel5: TPanel;
Panel6: TPanel;
Panel_JDZSK: TPanel;
Timer_JinDu: TTimer;
Button1: TButton;
Button_XunHuan: TBitBtn;
Panel_SoundX: TPanel;
Splitter_Sound: TSplitter;
Panel_SoundD: TPanel;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
Image_Help: TImage;
Button_List: TButton;
Button_Work: TButton;
PopupMenu: TPopupMenu;
Menu_OpenS: TMenuItem;
Menu_OpenM: TMenuItem;
N3: TMenuItem;
N6: TMenuItem;
Menu_XiaPlay: TMenuItem;
Menu_ShangPlay: TMenuItem;
N9: TMenuItem;
Menu_Sound: TMenuItem;
N11: TMenuItem;
Menu_Exit: TMenuItem;
Menu_WinGuan: TMenuItem;
Menu_OpenList: TMenuItem;
Menu_ClostList: TMenuItem;
N15: TMenuItem;
Menu_OpenWork: TMenuItem;
Menu_ClostWork: TMenuItem;
N18: TMenuItem;
Menu_Help: TMenuItem;
N20: TMenuItem;
Menu_FormTop: TMenuItem;
Panel_Left: TPanel;
Panel_Right: TPanel;
Panel_Model: TPanel;
Menu_Left: TMenuItem;
Menu_Model: TMenuItem;
Menu_Right: TMenuItem;
N26: TMenuItem;
Menu_SoundAdd: TMenuItem;
Menu_SoundDel: TMenuItem;
CheckListBox: TCheckListBox;
Menu_MixWindow: TMenuItem;
N22: TMenuItem;
Menu_CDOpen: TMenuItem;
Menu_CDClose: TMenuItem;
N4: TMenuItem;
Menu_Pluse: TMenuItem;
Menu_FormNorml: TMenuItem;
N2: TMenuItem;
Menu_SoundConf: TMenuItem;
Menu_Picture: TMenuItem;
OpenPictureDialog: TOpenPictureDialog;
Menu_SoundOffOn: TMenuItem;
Menu_StatePlay: TMenuItem;
Menu_NoXuan: TMenuItem;
Menu_XunHuan: TMenuItem;
Menu_Play: TMenuItem;
Menu_Pause: TMenuItem;
N10: TMenuItem;
Menu_Roundom: TMenuItem;
Menu_ShunXu: TMenuItem;
N16: TMenuItem;
Menu_WinShun: TMenuItem;
Menu_ZPPL: TMenuItem;
Menu_DPPL: TMenuItem;
Menu_YCPL: TMenuItem;
Menu_CDPL: TMenuItem;
Timer_Mouse: TTimer;
N7: TMenuItem;
Menu_Move: TMenuItem;
Menu_NoMove: TMenuItem;
N8: TMenuItem;
Menu_China: TMenuItem;
Menu_English: TMenuItem;
Menu_VCD: TMenuItem;
Menu_VcdOpen: TMenuItem;
N5: TMenuItem;
Menu_VcdPause: TMenuItem;
Menu_VcdPlay: TMenuItem;
Menu_VcdFrowd: TMenuItem;
Menu_VcdBack: TMenuItem;
N19: TMenuItem;
Menu_VcdFull: TMenuItem;
Menu_VcdNorml: TMenuItem;
DlgOpen_VCD: TOpenDialog;
MediaPlayer: TMediaPlayer;
procedure FormCreate(Sender: TObject);
procedure FormDestroy(Sender: TObject);
procedure OpenBtnClick(Sender: TObject);
procedure PlayBtnClick(Sender: TObject);
procedure PauseBtnClick(Sender: TObject);
procedure StopBtnClick(Sender: TObject);
procedure ExitBtnClick(Sender: TObject);
procedure Timer_JinDuTimer(Sender: TObject);
procedure Button_XunHuanClick(Sender: TObject);
procedure Panel_SoundXClick(Sender: TObject);
procedure Panel_SoundDClick(Sender: TObject);
procedure Button_ListClick(Sender: TObject);
procedure Button_WorkClick(Sender: TObject);
procedure Image_HelpClick(Sender: TObject);
procedure Menu_ExitClick(Sender: TObject);
procedure Menu_OpenSClick(Sender: TObject);
procedure Panel_ModelClick(Sender: TObject);
procedure Panel_LeftClick(Sender: TObject);
procedure Panel_RightClick(Sender: TObject);
procedure SetWave();
procedure Menu_LeftClick(Sender: TObject);
procedure Menu_ModelClick(Sender: TObject);
procedure Menu_RightClick(Sender: TObject);
procedure Menu_SoundAddClick(Sender: TObject);
procedure Menu_SoundDelClick(Sender: TObject);
procedure Play_Sounder(File_Name:String);
procedure Menu_MixWindowClick(Sender: TObject);
procedure Menu_CDOpenClick(Sender: TObject);
procedure Menu_CDCloseClick(Sender: TObject);
procedure Menu_HelpClick(Sender: TObject);
procedure Menu_PlayClick(Sender: TObject);
procedure Menu_PauseClick(Sender: TObject);
procedure Menu_SoundOffOnClick(Sender: TObject);
procedure Menu_PluseClick(Sender: TObject);
procedure Menu_SuiJiClick(Sender: TObject);
procedure Menu_DanSeClick(Sender: TObject);
procedure Menu_DaiClick(Sender: TObject);
procedure Menu_YeClick(Sender: TObject);
procedure Menu_OpenMClick(Sender: TObject);
procedure Menu_OpenListClick(Sender: TObject);
procedure Menu_ClostListClick(Sender: TObject);
procedure Menu_OpenWorkClick(Sender: TObject);
procedure Menu_ClostWorkClick(Sender: TObject);
procedure Menu_FormTopClick(Sender: TObject);
procedure Menu_FormNormlClick(Sender: TObject);
procedure Menu_SoundConfClick(Sender: TObject);
procedure user_sysmenu(var msg:twmmenuselect); Message WM_SYSCOMMAND;
procedure wmnchittest(var msg:twmnchittest); message wm_nchittest;
procedure Menu_PictureClick(Sender: TObject);
procedure Menu_NoXuanClick(Sender: TObject);
procedure Menu_XunHuanClick(Sender: TObject);
procedure Menu_RoundomClick(Sender: TObject);
procedure Menu_ShunXuClick(Sender: TObject);
procedure Menu_ZPPLClick(Sender: TObject);
procedure Menu_DPPLClick(Sender: TObject);
procedure Menu_YCPLClick(Sender: TObject);
procedure Menu_CDPLClick(Sender: TObject);
procedure Menu_XiaPlayClick(Sender: TObject);
procedure Menu_ShangPlayClick(Sender: TObject);
procedure Sp_XiaClick(Sender: TObject);
procedure Sp_ShangClick(Sender: TObject);
procedure FormMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure Image_bmpMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure Image_bmpMouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure Timer_MouseTimer(Sender: TObject);
procedure Mous_Down();
procedure Mous_up();
procedure Panel_BiaoMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure Panel_BiaoMouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure Panel_JinDuMouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure Panel_JinDuMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure Panel_QuMuMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure Panel_QuMuMouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure Menu_MoveClick(Sender: TObject);
procedure Menu_NoMoveClick(Sender: TObject);
procedure Menu_EnglishClick(Sender: TObject);
procedure Menu_ChinaClick(Sender: TObject);
procedure Menu_VcdOpenClick(Sender: TObject);
procedure Menu_VcdPauseClick(Sender: TObject);
procedure Menu_VcdPlayClick(Sender: TObject);
procedure Menu_VcdFrowdClick(Sender: TObject);
procedure Menu_VcdBackClick(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure Menu_VcdFullClick(Sender: TObject);
procedure Menu_VcdNormlClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
Play_Stop:Boolean;
Length_Miao:Integer;
Length_Play:Integer;
Xun_Huan:Boolean;
List_Boot:Boolean;
Work_Boot:Boolean;
Sound_OffOn:Boolean;
Sys_Menu_Int:Integer;
Roundom_Play:Boolean;
Mouse_Down:Boolean;
Move_OffOn:Boolean;
VCD_Play:Boolean;
VCD_Full:Boolean;
end;
var
Frm_Main: TFrm_Main;
implementation
uses Unit_List, Unit_Work, Unit_Help, Unit_Pluse, Unit_Play, Unit_Full;
{$R *.DFM}
function pvInitMp3(hInstance, hWnd, DisplayW, DisplayH, bands: integer): integer; stdcall; external 'pvmp3.dll';
//free. MUST call this before exit
procedure pvFreeMp3; stdcall; external 'pvmp3.dll';
//get the frequence and length of mp3
procedure pvGetMp3Info(pFileName: PChar; pFreq, pLen: pointer); stdcall; external 'pvmp3.dll';
//play mp3
function pvPlayMp3(pFileName: PChar): integer; stdcall; external 'pvmp3.dll';
//stop mp3
procedure pvStopMp3; stdcall; external 'pvmp3.dll';
//pasue mp3
procedure pvPauseMp3; stdcall; external 'pvmp3.dll';
//resume mp3
procedure pvResumeMp3; stdcall; external 'pvmp3.dll';
procedure TFrm_Main.FormCreate(Sender: TObject);
begin
try
pvInitMp3(hInstance, Panel_Biao.Handle, Panel_Biao.Width, Panel_Biao.Height, 32);
Sys_Menu_Int:=Windows.GetSystemMenu(Handle,False);
Windows.AppendMenu(Sys_Menu_Int,MF_STRING,100,'作者:朱曉磊');
except
exit;
end;
end;
procedure TFrm_Main.FormDestroy(Sender: TObject);
begin
try
pvFreeMp3;
except
exit;
end;
end;
procedure TFrm_Main.OpenBtnClick(Sender: TObject);
begin
try
Frm_Main.OpenDialog_S.Title := Frm_Main.Caption;
if Frm_Main.OpenDialog_S.Execute then
begin
Frm_Main.Play_Sounder(Frm_Main.OpenDialog_S.FileName);
Frm_Main.CheckListBox.Items.Add(Frm_Main.OpenDialog_S.FileName);
Frm_Main.CheckListBox.ItemIndex := Frm_Main.CheckListBox.Items.Count -1 ;
end;
if Frm_Main.List_Boot = True then
begin
Frm_List.CheckListBox.Items.Add(Frm_Main.OpenDialog_S.FileName);
Frm_List.CheckListBox.ItemIndex := Frm_Main.CheckListBox.ItemIndex;
end;
except
exit;
end;
end;
procedure TFrm_Main.PlayBtnClick(Sender: TObject);
begin
try
Frm_Main.Play_Sounder(Frm_Main.CheckListBox.Items.Strings[Frm_Main.CheckListBox.ItemIndex]);
PauseBtn.tag := 0;
PauseBtn.Caption := '||';
Frm_Main.Play_Stop := True;
Frm_Main.Length_Play :=0;
Frm_Main.Timer_JinDu.Enabled := True;
except
exit;
end;
end;
procedure TFrm_Main.PauseBtnClick(Sender: TObject);
begin
try
if PauseBtn.tag=0 then
begin
PauseBtn.tag := 1;
PauseBtn.Caption := '=>';
Frm_Main.Play_Stop := False;
Frm_Main.Timer_JinDu.Enabled := False;
Frm_Main.PauseBtn.Hint :='繼續';
pvPauseMp3;
end else begin
PauseBtn.tag := 0;
PauseBtn.Caption := '||';
Frm_Main.Play_Stop :=True;
Frm_Main.Timer_JinDu.Enabled := True;
Frm_Main.PauseBtn.Hint :='暫停';
pvResumeMp3;
end;
except
exit;
end;
end;
procedure TFrm_Main.StopBtnClick(Sender: TObject);
begin
try
pvStopMp3;
PauseBtn.tag := 0;
PauseBtn.Caption := '||';
Frm_Main.Timer_JinDu.Enabled := False;
except
exit;
end;
end;
procedure TFrm_Main.ExitBtnClick(Sender: TObject);
begin
try
Frm_Main.Close;
except
exit;
end;
end;
procedure TFrm_Main.Timer_JinDuTimer(Sender: TObject);
var
Play_Index:Integer;
begin
try
if Frm_Main.Play_Stop = True then
begin
Frm_Main.Panel_JDZSK.Left :=
Round((Frm_Main.Panel_JinDu.Width - Frm_Main.Panel_JDZSK.Width)
* (Length_Play/Length_Miao));
Frm_Main.Length_Play := Frm_Main.Length_Play +1;
Frm_Main.Panel_Sum.Caption := IntToStr(Length_Play);
Frm_Main.Panel_Curent.Caption := IntToStr(Length_Miao);
if (Frm_Main.Panel_JDZSK.Left >
Round(Frm_Main.Panel_JinDu.Width * 0.99-Frm_Main.Panel_JDZSK.Width))and (Xun_Huan = False) then
if Frm_Main.CheckListBox.Items.Count <=0 then
Frm_Main.Play_Stop := False
else
begin
if Frm_Main.Roundom_Play = True then
begin
Play_Index:= Round(Random(Frm_Main.CheckListBox.Items.Count));
Frm_Main.Play_Sounder(Frm_Main.CheckListBox.Items.Strings[Play_Index]);
Frm_Main.CheckListBox.ItemIndex := Play_Index;
if Frm_Main.List_Boot = True then
Frm_List.CheckListBox.ItemIndex := Frm_Main.CheckListBox.ItemIndex;
end;
if Frm_Main.Roundom_Play = False then
begin
if Frm_Main.CheckListBox.ItemIndex < Frm_Main.CheckListBox.Items.Count -1 then
Play_Index:=Frm_Main.CheckListBox.ItemIndex+1
else
Play_Index:=0;
Frm_Main.Play_Sounder(Frm_Main.CheckListBox.Items.Strings[Play_Index]);
Frm_Main.CheckListBox.ItemIndex := Play_Index;
if Frm_Main.List_Boot = True then
Frm_List.CheckListBox.ItemIndex := Frm_Main.CheckListBox.ItemIndex;
end;
end;
if (Frm_Main.Panel_JDZSK.Left >
Round((Frm_Main.Panel_JinDu.Width - Frm_Main.Panel_JDZSK.Width) * (0.98)))and (Xun_Huan = True) then
begin
Frm_Main.Play_Stop := True;
Frm_Main.Play_Sounder(Frm_Main.CheckListBox.Items.Strings[Frm_Main.CheckListBox.ItemIndex]);
//Frm_Main.CheckListBox.ItemIndex:=Frm_List.CheckListBox.ItemIndex;
end;
end;
except
exit;
end;
end;
procedure TFrm_Main.Button_XunHuanClick(Sender: TObject);
begin
try
if Xun_Huan = False then
begin
Frm_Main.Panel_JinDu.Color := clBlue;
Frm_Main.Xun_Huan := True;
Frm_Main.Button_XunHuan.Font.Color := clRed;
Frm_Main.Button_XunHuan.Hint :='取消循環';
end
else
begin
Frm_Main.Panel_JinDu.Color := clBlack;
Frm_Main.Xun_Huan := False;
Frm_Main.Button_XunHuan.Font.Color := clBlue;
Frm_Main.Button_XunHuan.Hint :='循環播放';
end;
except
exit;
end;
end;
procedure TFrm_Main.Panel_SoundXClick(Sender: TObject);
begin
try
if Frm_Main.Splitter_Sound.Left <=65 then
begin
Frm_Main.Panel_SoundX.Width := Frm_Main.Panel_SoundX.Width+10;
if Frm_Main.Splitter_Sound.Left >65 then
Frm_Main.Panel_SoundX.Width:=65;
end;
Frm_Main.SetWave();
except
exit;
end;
end;
procedure TFrm_Main.Panel_SoundDClick(Sender: TObject);
begin
try
if Frm_Main.Splitter_Sound.Left >=10 then
begin
Frm_Main.Panel_SoundX.Width := Frm_Main.Panel_SoundX.Width -10;
if Frm_Main.Splitter_Sound.Left <10 then
Frm_Main.Panel_SoundX.Width :=0;
end;
Frm_Main.SetWave();
except
exit;
end;
end;
procedure TFrm_Main.Button_ListClick(Sender: TObject);
begin
try
if Frm_Main.List_Boot = False then
begin
Frm_List:=TFrm_List.Create(self);
Frm_List.Left :=Round(Frm_Main.Left - Frm_Main.Width /2);
Frm_List.Top := Frm_Main.Top + Frm_Main.Height ;
Frm_List.CheckListBox.Items:=Frm_Main.CheckListBox.Items;
Frm_List.CheckListBox.ItemIndex:=Frm_Main.CheckListBox.ItemIndex;
Frm_List.Image.Picture := Frm_Main.Image_bmp.Picture;
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -