Files
AC_Pro/MainFormUnit.h
2026-06-13 00:05:19 +08:00

328 lines
14 KiB
C++

//---------------------------------------------------------------------------
#ifndef MainFormUnitH
#define MainFormUnitH
//---------------------------------------------------------------------------
#include <System.Classes.hpp>
#include <Vcl.Controls.hpp>
#include <Vcl.StdCtrls.hpp>
#include <Vcl.Forms.hpp>
#include <Vcl.ExtCtrls.hpp>
#include <Vcl.Imaging.pngimage.hpp>
#include <Vcl.Graphics.hpp>
#include <Vcl.Imaging.jpeg.hpp>
#include "PNGButton.hpp"
#include "Capbutton.h"
#include "MenuBar.h"
#include "MenuUnit.h"
#include "SkinHintWindow.h"
#include "MicSetFormUnit.h"
#include "SetUpFormUnit.h"
#include "ComboBoxComponent.h"
#include "VolumeFormUnit.h" //add by lm 14.1.7
#include "LineEdit.h"
#include "KeyBoard.h"
#include "HelpFormUnit.h"
#include "NotificationFormUnit.h"
#include "TextButton.h"
//---------------------------------------------------------------------------
class TMainForm : public TForm
{
__published: // IDE-managed Components
TPNGButton *m_btnClose;
TPNGButton *m_btnMax;
TPNGButton *m_btnMin;
TPNGButton *m_btnRest;
TPNGButton *m_btnRecord;
TPNGButton *m_btnPlay;
TPNGButton *m_btnStop;
TPNGButton *m_btnPause;
TLabel *m_lblTitle;
TLabel *m_lblLogon;
TPNGButton *m_tabStyle;
TPNGButton *m_tabChord;
TPNGButton *m_tabAudio;
TComboBoxComponent *m_cbPreStage;
TCapButton *m_btnTS;
TCapButton *m_btnTempo;
TPanel *m_panelVolLevel;
TImage *m_imgVolLevelBk;
TPaintBox *m_pbVolLevel;
TComboBoxComponent *m_cbFontSelect;
TComboBoxComponent *m_cbKey;
TPNGButton *m_btnOpen;
TPNGButton *m_btnSave;
TPNGButton *m_btnUpload;
TPNGButton *m_btnKeyboard;
TPNGButton *m_btnVolSet;
TImage *m_Logo;
TPaintBox *m_pbUserNoticeNum;
TPNGButton *m_btnExtFontOn;
TPNGButton *m_btnExtFontOff;
TLabel *m_lblExtFont;
TLabel *m_lblWebsite;
void __fastcall FormCreate(TObject *Sender);
void __fastcall FormResize(TObject *Sender);
void __fastcall CloseClick(TObject *Sender);
void __fastcall FormClose(TObject *Sender, TCloseAction &Action);
void __fastcall FormCloseQuery(TObject *Sender, bool &CanClose);
void __fastcall MaxClick(TObject *Sender);
void __fastcall MinClick(TObject *Sender);
void __fastcall RestClick(TObject *Sender);
void __fastcall FormMouseDown(TObject *Sender, TMouseButton Button, TShiftState Shift,
int X, int Y);
void __fastcall FormPaint(TObject *Sender);
void __fastcall LogonMouseEnter(TObject *Sender);
void __fastcall LogonMouseLeave(TObject *Sender);
void __fastcall RecordClick(TObject *Sender);
void __fastcall StopClick(TObject *Sender);
void __fastcall FormKeyDown(TObject *Sender, WORD &Key, TShiftState Shift);
void __fastcall PlayClick(TObject *Sender);
void __fastcall PauseClick(TObject *Sender);
void __fastcall PanelMouseMove(TObject *Sender, TShiftState Shift, int X, int Y);
// void __fastcall PanelMouseDown(TObject *Sender, TMouseButton Button, TShiftState Shift, int X, int Y);
void __fastcall PanelMouseUp(TObject *Sender, TMouseButton Button, TShiftState Shift, int X, int Y);
void __fastcall TabClick(TObject *Sender);
void __fastcall PreStageChange(TComboBoxItem *Sender, int Index);
void __fastcall VolLevelPaint(TObject *Sender);
void __fastcall UserNameClick(TObject *Sender);
void __fastcall FontSelectChange(TComboBoxItem *Sender, int Index);
void __fastcall KeyChange(TComboBoxItem *Sender, int Index);
void __fastcall OpenClick(TObject *Sender);
void __fastcall SaveClick(TObject *Sender);
void __fastcall UploadClick(TObject *Sender);
void __fastcall TTClick(TObject *Sender);
void __fastcall VolSetClick(TObject *Sender);
void __fastcall OnKeyBoard(TObject *Sender);
void __fastcall FormKeyUp(TObject *Sender, WORD &Key, TShiftState Shift);
void __fastcall PlayTimeClick(TObject *Sender);
void __fastcall DoShowNoticeNumPaint(TObject *Sender);
void __fastcall UserNoticeNumClick(TObject *Sender);
void __fastcall ExtFontClick(TObject *Sender);
void __fastcall URLClick(TObject *Sender);
void __fastcall URLMouseEnter(TObject *Sender);
void __fastcall URLMouseLeave(TObject *Sender);
private: // User declarations
TMenuBar *m_pMenuBar;
TMenuPanel *m_pMenu,
*m_pPopMenu;
TVolumeForm *m_pVolumeForm;
TPlayTimePanel *m_pPlayTimePanel;
TContentPanel *m_pContentPanel;
TToolpalPanel *m_pUseStylePanel, *m_pAudStylePanel, *m_pPreStylePanel,
*m_pChordPanel, *m_pTrackPanel;
int m_ToolpalWidth, m_UseStyleHeight, m_PreStyleHeight;
TKeyBoard *m_KeyBoard; //模拟键盘 add by laq 2014.1.17
//录音/播放相关
DWORD m_dwLastVol;
int m_iStartBar,
m_iLastStartBar,
m_iRecordBar,
m_nDelayPoint;
double m_dblStartPoint,
m_dblLastStartPoint,
m_dblRecordPoint;
// bool m_bAudioModified;
bool m_bFromFile;
UINT m_tTimer, m_tAccuracy, m_tBeatHint;
int m_nVolLevel; //音量等级
HRESULT __fastcall AutoRecognition( int iType ); //旋律识别 0=录音 1=音频导入 2=MIDI导入 3=移动
HRESULT __fastcall AutoChords(); //自动配置和弦
void __fastcall OnLoadMelody(TObject *Sender);
void __fastcall SetMode( int iMode, bool bForce=false ); //设置视图模式, bForce强制刷新
void __fastcall ChangeTT( bool bTS, int iValue );
void __fastcall SetFont( int idFont, bool bExtFont=false, bool bAddUndo=true );
//倒计时定时器
TTimer * m_pCDTimer;
void __fastcall CDTimerProc(TObject* Sender);
void __fastcall ClearCDTimer();
//保存相关
String m_strLoadProjectName,
m_strUploadFile;
void __fastcall SaveAs( int iComb );
//显示相关
void __fastcall ShowPlayTime();
void __fastcall CreateMenus();
void __fastcall ViewLayout();
void __fastcall NewProject();
void __fastcall DoLoadProject( LPCTSTR strName );
void __fastcall AfterLoadProject();
void __fastcall Undo( bool bUndo );
void __fastcall SetRecordState( bool bRecord );
void __fastcall ShowToolPanels( int iShow );
bool __fastcall RecordEnabled();
bool __fastcall CheckPayment( int iOperation );
void __fastcall Logout(); // add by lm 14.1.17
int __fastcall SaveMedia( int iOperation, int iSaveOption, int iFileType, String strFileName, bool bUpload=false );
//帮助
THelpForm* m_HelpForm;
//动态 //add by tj 2014/04/18
TTimer *m_pNotificationGetTimer;
void __fastcall NotificationTimerProc(TObject* Sender);
TNotificationForm *m_pNotificationForm;
void __fastcall CreateParams(TCreateParams &Params);
void __fastcall OnCreateNewProject(TObject * Sender = NULL);
void __fastcall OnPredefineProject(TObject * Sender = NULL);
void __fastcall OnSaveProject(TObject *Sender=NULL);
void __fastcall OnLoadProject(TObject *Sender=NULL);
void __fastcall OnUserHelp(TObject *Sender=NULL);
void __fastcall OnUserManual(TObject *Sender=NULL);
void __fastcall OnForumVist(TObject *Sender=NULL);
void __fastcall OnAbout(TObject *Sender=NULL);
void __fastcall OnMicSetting(TObject *Sender=NULL);
void __fastcall OnVSTPathSetting(TObject *Sender=NULL);
void __fastcall OnSaveAs(TObject *Sender=NULL);// add by lm 14.1.7
void __fastcall OnShowToolPanels(TObject *Sender=NULL);
void __fastcall OnViewMode(TObject *Sender=NULL);
void __fastcall OnNotification(TObject *Sender=NULL); //add by tj 2014/04/18
void __fastcall OnCustomerSetting(TObject *Sender=NULL); //add by tj 2014/05/13
void __fastcall OnUndo(TObject *Sender=NULL);
void __fastcall OnRedo(TObject *Sender=NULL);
void __fastcall OnShowMore(TObject *Sender=NULL);
//消息处理
MESSAGE void __fastcall WMEraseBkgnd(Winapi::Messages::TWMEraseBkgnd &Message);
MESSAGE void __fastcall WMNCHitTest(TWMNCHitTest &Msg);
MESSAGE void __fastcall WMNCLButtonDown(TWMNCLButtonDown &Msg);
MESSAGE void __fastcall WMNCRButtonDown(TWMNCRButtonDown &Msg);
MESSAGE void __fastcall WMNCLButtonDblClk(TWMNCLButtonDblClk &Msg);
MESSAGE void __fastcall WMWindowPosChanged(TWMWindowPosChanged &Msg);
MESSAGE void __fastcall OnRestoreWindow(TMessage &msg);
MESSAGE void __fastcall OnShowMenu(TMessage &msg);
// MESSAGE void __fastcall OnMenuCall(TMessage &msg);
MESSAGE void __fastcall OnMenuClose(TMessage & Msg);
MESSAGE void __fastcall OnLogin(TMessage &msg);
MESSAGE void __fastcall OnNetworkError(TMessage &msg);
MESSAGE void __fastcall OnNetworkMessage(TMessage &msg);
MESSAGE void __fastcall OnLoadProjectMessage(TMessage &msg);
MESSAGE void __fastcall OnSaveProjectMessage(TMessage &msg);
MESSAGE void __fastcall OnNewProjectMessage(TMessage &msg);
MESSAGE void __fastcall OnUploadMusic(TMessage & Msg);
MESSAGE void __fastcall AcceptFiles (TMessage& Msg);
MESSAGE void __fastcall OnShowAbout(TMessage & Msg);
MESSAGE void __fastcall OnOpenManual(TMessage & Msg);
MESSAGE void __fastcall OnOpenAutoProj(TMessage & Msg);
MESSAGE void __fastcall UMShowBrush(TMessage &msg);
MESSAGE void __fastcall UMMediaTime(TMessage &Message);
MESSAGE void __fastcall UMRecordComplete(TMessage &Message);
MESSAGE void __fastcall UMRecordVolJust(TMessage &Message);
MESSAGE void __fastcall UMPlayOver(TMessage &Message);
MESSAGE void __fastcall UMShowPlayTime(TMessage &Message);
MESSAGE void __fastcall UMStop(TMessage &Message);
MESSAGE void __fastcall UMRecord(TMessage &Message);
MESSAGE void __fastcall UMTTSetup(TMessage &Message);
MESSAGE void __fastcall UMChangeTT(TMessage &Message);
MESSAGE void __fastcall UMStageChanged(TMessage &Message);
MESSAGE void __fastcall UMShowKeyBoard(TMessage &Message);
MESSAGE void __fastcall UMShowHelp(TMessage &Message);
MESSAGE void __fastcall UMStyleScore(TMessage &Message);
MESSAGE void __fastcall UMNotification(TMessage & Msg); //add by tj 2014/04/18
MESSAGE void __fastcall UMApplyStyle(TMessage &Message);
MESSAGE void __fastcall UMSaveLocalStyle(TMessage &Message);
MESSAGE void __fastcall UMImportSegment(TMessage &Message);
MESSAGE void __fastcall UMUploadStyle(TMessage &Message);
MESSAGE void __fastcall UMChangeMelodyKey(TMessage &Message);
MESSAGE void __fastcall UMSetViewMode(TMessage &Message);
MESSAGE void __fastcall UMEnableRecord(TMessage &Message);
MESSAGE void __fastcall UMAudioLoad(TMessage &Message);
MESSAGE void __fastcall UMAutoRecognition(TMessage &Message);
MESSAGE void __fastcall UMShowVolSet(TMessage &Message);
MESSAGE void __fastcall UMVSTPath(TMessage &Message);
MESSAGE void __fastcall UMSetContentView(TMessage &Message);
MESSAGE void __fastcall UMGetContentView(TMessage &Message);
MESSAGE void __fastcall UMAudioVolChanged(TMessage &Message);
MESSAGE void __fastcall UMPreferChanged(TMessage &Message);
MESSAGE void __fastcall UMShowMore(TMessage &Message);
MESSAGE void __fastcall UMStartCDTimer(TMessage &Message);
BEGIN_MESSAGE_MAP
MESSAGE_HANDLER(WM_ERASEBKGND, TWMEraseBkgnd, WMEraseBkgnd)
MESSAGE_HANDLER(WM_NCHITTEST, TWMNCHitTest, WMNCHitTest)
MESSAGE_HANDLER(WM_NCLBUTTONDOWN, TWMNCLButtonDown, WMNCLButtonDown)
MESSAGE_HANDLER(WM_NCRBUTTONDOWN, TWMNCRButtonDown, WMNCRButtonDown)
MESSAGE_HANDLER(WM_NCLBUTTONDBLCLK, TWMNCLButtonDblClk, WMNCLButtonDblClk)
MESSAGE_HANDLER(WM_WINDOWPOSCHANGED, TWMWindowPosChanged, WMWindowPosChanged)
MESSAGE_HANDLER(WM_DROPFILES,TMessage, AcceptFiles)
MESSAGE_HANDLER(MSG_NETWORKERROR, TMessage, OnNetworkError)
MESSAGE_HANDLER(MSG_NETWORKMESSAGE, TMessage, OnNetworkMessage)
MESSAGE_HANDLER(MSG_MEDIATIME, TMessage, UMMediaTime)
MESSAGE_HANDLER(MSG_RECORD_COMPLETE, TMessage, UMRecordComplete)
MESSAGE_HANDLER(MSG_RECORD_VOLJUST, TMessage, UMRecordVolJust)
MESSAGE_HANDLER(MSG_PLAY_END, TMessage, UMPlayOver)
MESSAGE_HANDLER(UM_RESTORE, TMessage, OnRestoreWindow)
MESSAGE_HANDLER(UM_SHOWMENU, TMessage, OnShowMenu)
MESSAGE_HANDLER(UM_MENUCLOSE, TMessage, OnMenuClose)
MESSAGE_HANDLER(UM_SHOWPLAYTIME, TMessage, UMShowPlayTime)
MESSAGE_HANDLER(UM_STOP, TMessage, UMStop)
MESSAGE_HANDLER(UM_RECORD, TMessage, UMRecord)
MESSAGE_HANDLER(UM_SHOWBRUSH, TMessage, UMShowBrush)
MESSAGE_HANDLER(UM_TTSETUP, TMessage, UMTTSetup)
MESSAGE_HANDLER(UM_CHANGETT, TMessage, UMChangeTT)
MESSAGE_HANDLER(UM_STAGECHANGED, TMessage, UMStageChanged)
MESSAGE_HANDLER(UM_LOGIN, TMessage, OnLogin)
MESSAGE_HANDLER(UM_LOADPROJECT, TMessage, OnLoadProjectMessage)
MESSAGE_HANDLER(UM_SAVEPROJECT, TMessage, OnSaveProjectMessage)
MESSAGE_HANDLER(UM_NEWPROJECT, TMessage, OnNewProjectMessage)
MESSAGE_HANDLER(UM_UPLOADMUSIC,TMessage,OnUploadMusic)
MESSAGE_HANDLER(UM_SHOWABOUT,TMessage,OnShowAbout)
MESSAGE_HANDLER(UM_OPENMANUAL,TMessage,OnOpenManual)
MESSAGE_HANDLER(UM_SHOW_KB, TMessage, UMShowKeyBoard)
MESSAGE_HANDLER(UM_OPENAUTOPROJ,TMessage,OnOpenAutoProj)
MESSAGE_HANDLER(UM_SHOWHELP, TMessage, UMShowHelp)
MESSAGE_HANDLER(UM_STYLESCORE, TMessage, UMStyleScore)
MESSAGE_HANDLER(UM_NOTIFICATION, TMessage, UMNotification) //add by tj 2014/04/18
MESSAGE_HANDLER(UM_APPLYSTYLE, TMessage, UMApplyStyle)
MESSAGE_HANDLER(UM_SAVELOCALSTYLE, TMessage, UMSaveLocalStyle)
MESSAGE_HANDLER(UM_IMPORTSEGMENT, TMessage, UMImportSegment)
MESSAGE_HANDLER(UM_UPLOADSTYLE, TMessage, UMUploadStyle)
MESSAGE_HANDLER(UM_CHANGEKEY, TMessage, UMChangeMelodyKey)
MESSAGE_HANDLER(UM_SETVIEWMODE, TMessage, UMSetViewMode)
MESSAGE_HANDLER(UM_ENABLERECORD, TMessage, UMEnableRecord)
MESSAGE_HANDLER(UM_AUDIOLOAD, TMessage, UMAudioLoad)
MESSAGE_HANDLER(UM_AUTORECOGNITION, TMessage, UMAutoRecognition)
MESSAGE_HANDLER(UM_SHOW_VOLSET, TMessage, UMShowVolSet)
MESSAGE_HANDLER(UM_VSTPATH, TMessage, UMVSTPath)
MESSAGE_HANDLER(UM_SETCONTENTVIEW, TMessage, UMSetContentView)
MESSAGE_HANDLER(UM_GETCONTENTVIEW, TMessage, UMGetContentView)
MESSAGE_HANDLER(UM_AUDIOVOLCHANGED, TMessage, UMAudioVolChanged)
MESSAGE_HANDLER(UM_PREFERCHANGED, TMessage, UMPreferChanged)
MESSAGE_HANDLER(UM_SHOWMORE, TMessage, UMShowMore)
MESSAGE_HANDLER(UM_STARTCDTIMER, TMessage, UMStartCDTimer)
END_MESSAGE_MAP(TForm)
public: // User declarations
__fastcall TMainForm(TComponent* Owner);
void __fastcall ShowErrorMessage( int err, String strOperation );
};
//---------------------------------------------------------------------------
extern PACKAGE TMainForm *MainForm;
//---------------------------------------------------------------------------
#endif