Files
2026-06-13 00:10:11 +08:00

199 lines
6.4 KiB
C++

//---------------------------------------------------------------------------
#ifndef BaseFormUnitH
#define BaseFormUnitH
//---------------------------------------------------------------------------
#include <System.Classes.hpp>
#include <Vcl.Controls.hpp>
#include <Vcl.ExtCtrls.hpp>
#include <Vcl.Forms.hpp>
#include <Vcl.Imaging.jpeg.hpp>
#include <Vcl.StdCtrls.hpp>
#include "PNGButton.hpp"
#include "CommonListboxUnit.h"
#include "BasePanelUnit.h"
#include <Vcl.Imaging.pngimage.hpp>
#include <Vcl.Graphics.hpp>
#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