//--------------------------------------------------------------------------- #ifndef BaseFormUnitH #define BaseFormUnitH //--------------------------------------------------------------------------- #include #include #include #include #include #include #include "PNGButton.hpp" #include "CommonListboxUnit.h" #include "BasePanelUnit.h" #include #include #include "PopMenuUnit.h" #include "BackgroundForm.h" //--------------------------------------------------------------------------- class TBaseForm : public TBackgroundForm { __published: // IDE-managed Components // TImage *m_imgBk; // TImage *m_imgLeftBottomConner; // TImage *m_imgBottomSide; // TImage *m_imgRightSide; // TImage *m_imgRightBottomConner; TImage *m_imgBreakH; TImage *m_imgBreakI; TImage *m_imgBreakM; TImage *m_imgBreakR; TPNGButton *m_btnRecord; TPNGButton *m_btnStop; TPNGButton *m_btnPlay; TPNGButton *m_btnPause; TPNGButton *m_btnApart; TPNGButton *m_btnCombine; TPNGButton *m_btnPrevStep; TPNGButton *m_btnNextStep; BasePanelUnit::TPanel *m_panelBarsShow; TPNGButton *m_btnVolAudioSet; TPNGButton *m_btnVolMusicSet; Vcl::Extctrls::TPanel *m_panelMusicInfo; TImage *m_imgMusicInfoBk; TLabel *m_lblPlayTime; TLabel *m_lblBeat; TLabel *m_lblTempo; TLabel *m_lblKey; TPNGButton *m_btnKeyChange; CommonListBoxUnit::TListBox *m_lbKeySelect; Vcl::Extctrls::TPanel *m_panelMusicVolSet; TImage *m_imgMusicVolSet; TPNGButton *m_btnMusicVolPos; Vcl::Extctrls::TPanel *m_panelAudioVolSet; TImage *m_imgAudioVolSet; TPNGButton *m_btnAudioVolPos; TPNGButton *m_btnStyleChange; Vcl::Extctrls::TPanel *m_panelStyleName; TImage *m_imgStyleNameBk; TLabel *m_lblStyleName; TPNGButton *m_btnMainKey1; TPNGButton *m_btnMainKey0; TPNGButton *m_btnMainKey2; TPNGButton *m_btnMainKey3; TPNGButton *m_btnMainKey4; TPNGButton *m_btnMainKey5; TPNGButton *m_btnMainKey6; TPNGButton *m_btnAjustKey0; TPNGButton *m_btnAjustKey1; TPNGButton *m_btnChordType0; TPNGButton *m_btnChordType1; TPNGButton *m_btnChordType2; TPNGButton *m_btnAudioEffect; TPNGButton *m_btnMicSet; void __fastcall FormCreate(TObject *Sender); void __fastcall FormDestroy(TObject *Sender); void __fastcall FormResize(TObject *Sender); void __fastcall FormActivate(TObject *Sender); void __fastcall StepClick(TObject *Sender); void __fastcall PlayClick(TObject *Sender); void __fastcall StopClick(TObject *Sender); void __fastcall PauseClick(TObject *Sender); void __fastcall PlayTimeClick(TObject *Sender); void __fastcall BtnKeyChangeClick(TObject *Sender); void __fastcall LBKeySelectMouseDown(TObject *Sender, TMouseButton Button, TShiftState Shift, int X, int Y); void __fastcall BtnVolSetClick(TObject *Sender); void __fastcall ImgVolSetMouseDown(TObject *Sender, TMouseButton Button, TShiftState Shift, int X, int Y); void __fastcall BtnVolPosMouseDown(TObject *Sender, TMouseButton Button, TShiftState Shift, int X, int Y); void __fastcall BtnVolPosMouseMove(TObject *Sender, TShiftState Shift, int X, int Y); void __fastcall BtnVolPosMouseUp(TObject *Sender, TMouseButton Button, TShiftState Shift, int X, int Y); void __fastcall ApartClick(TObject *Sender); void __fastcall CombineClick(TObject *Sender); void __fastcall BarsShowMouseDown(TObject *Sender, TMouseButton Button, TShiftState Shift, int X, int Y); void __fastcall BarsShowMouseMove(TObject *Sender, TShiftState Shift, int X, int Y); void __fastcall BtnMainKeyClick(TObject *Sender); void __fastcall BtnAjustKeyClick(TObject *Sender); void __fastcall BtnChordTypeClick(TObject *Sender); void __fastcall FormKeyDown(TObject *Sender, WORD &Key, TShiftState Shift); void __fastcall BtnStyleChangeClick(TObject *Sender); void __fastcall FormDeactivate(TObject *Sender); void __fastcall AudioEffectClick(TObject *Sender); void __fastcall MicSetClick(TObject *Sender); private: // User declarations //音量相关 int m_nAudioVolPos, m_nMusicVolPos, m_yPosDragBegin; bool m_bPosDraging; //录音/播放相关 int m_iStartBar, m_iLastStartBar; double m_dblStartPoint, m_dblLastStartPoint; UINT m_tTimer, m_tAccuracy, m_tMusicLen; //和弦相关 bool m_bCanErase; TPNGButton* m_lstMainKeys[7]; // TPNGButton* m_lstDefaultMainKeys[7]; TPNGButton* m_lstAjustKeys[2]; TPNGButton* m_lstChordTypes[3]; DWORD m_dwOriginChord; TPngImage *m_aImagKeyLM[7], *m_aImagKeyEG[7]; //菜单操作相关 TPopMenu * m_pPopMenu; int m_iPopBar, m_iPopPoint; // void AutoCompose(); // bool BaseCompose(); void ShowPlayTime(); void EnableChordModify( bool bEnable, int iMainKey, int iAjustKey, int iChordType ); int GetMainKey(); int GetAjustKey(); int GetChordType(); void HidePopList(CommonListBoxUnit::TListBox* pList); int HidePopControls(); void BarsLButtonDown( int iHitType, int iHitBar, int iHitPoint ); void BarsRButtonDown( int iHitType, int iHitBar, int iHitPoint, int X, int Y ); void GetSelectKey( int& iMain, int& iAdjust ); void SetSelectKey( int iMain, int iAdjust ); void SetChordType( int iType ); void __fastcall OnSelectStageVar( TObject* Sender ); void __fastcall OnSelectBarFill( TObject* Sender ); void __fastcall OnDeleteChord( TObject* Sender ); void __fastcall OnChangeChordMode( TObject* Sender=NULL ); MESSAGE void __fastcall UMMediaTime(TMessage &Message); // MESSAGE void __fastcall UMEnableReload(TMessage &Message); MESSAGE void __fastcall UMSelectStyle(TMessage &msg); MESSAGE void __fastcall UMReload(TMessage &msg); MESSAGE void __fastcall UMSetFontPosition(TMessage &msg); MESSAGE void __fastcall UMHidePopControl(TMessage &msg); BEGIN_MESSAGE_MAP MESSAGE_HANDLER(MSG_MEDIATIME, TMessage, UMMediaTime) // MESSAGE_HANDLER(UM_ENABLERELOAD, TMessage, UMEnableReload) MESSAGE_HANDLER(UM_SELECTSTYLE, TMessage, UMSelectStyle) MESSAGE_HANDLER(UM_RELOAD, TMessage, UMReload) MESSAGE_HANDLER(UM_SETFONTPOSITION, TMessage, UMSetFontPosition) MESSAGE_HANDLER(UM_HIDEPOPCONTROL, TMessage, UMHidePopControl) MESSAGE_HANDLER(WM_ERASEBKGND, TWMEraseBkgnd, WMEraseBkgnd) END_MESSAGE_MAP(TForm) public: // User declarations __fastcall TBaseForm(TComponent* Owner); void __fastcall ChangeChordMode( bool bAlpha ); }; //--------------------------------------------------------------------------- extern PACKAGE TBaseForm *BaseForm; //--------------------------------------------------------------------------- #endif