Initial commit
This commit is contained in:
@@ -0,0 +1,225 @@
|
||||
//---------------------------------------------------------------------------
|
||||
#include <vcl.h>
|
||||
#include "SaveFormUnit.h"
|
||||
#pragma hdrstop
|
||||
|
||||
#include "GlobalUnit.h"
|
||||
//---------------------------------------------------------------------------
|
||||
#pragma package(smart_init)
|
||||
#pragma link "PNGButton"
|
||||
#pragma resource "*.dfm"
|
||||
TSaveForm *SaveForm;
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
|
||||
__fastcall TSaveForm::TSaveForm(TComponent* Owner, String strDefaultFile,
|
||||
int iLastOption, int iLastType)
|
||||
: TForm(Owner)
|
||||
{
|
||||
m_editFileName->Text = strDefaultFile;
|
||||
m_imgComposeCheck->Tag = (bool)(iLastOption & 2);
|
||||
m_imgSongCheck->Tag = (bool)(iLastOption & 1);
|
||||
|
||||
if( g_bPredefine && m_imgComposeCheck->Tag==0 && m_imgSongCheck->Tag==1 ){
|
||||
m_imgSongCheck->Tag = 0;
|
||||
}
|
||||
|
||||
m_iSaveType = iLastType;
|
||||
|
||||
SetTransparent( this );
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
void __fastcall TSaveForm::WMNCHitTest(TWMNCHitTest &Msg)
|
||||
{
|
||||
TForm::Dispatch(&Msg);
|
||||
|
||||
if( Msg.Result==HTCLIENT && Msg.YPos<Top+24 )
|
||||
Msg.Result = HTCAPTION;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
|
||||
void __fastcall TSaveForm::ImgCheckClick(TObject *Sender)
|
||||
{
|
||||
if( ExtractFileExt(m_editFileName->Text).CompareIC(".mid")==0 ){
|
||||
return;
|
||||
}
|
||||
|
||||
TImage* pImg = (TImage*)Sender;
|
||||
|
||||
if( !g_bPredefine || pImg==m_imgComposeCheck || m_imgComposeCheck->Tag==1 ){
|
||||
pImg->Tag = !pImg->Tag;
|
||||
pImg->Picture->Bitmap->Assign(m_pImgCheckState[pImg->Tag]);
|
||||
pImg->Invalidate();
|
||||
}
|
||||
|
||||
if( g_bPredefine && pImg==m_imgComposeCheck && pImg->Tag==0 && m_imgSongCheck->Tag==1 ){
|
||||
m_imgSongCheck->Tag = 0;
|
||||
m_imgSongCheck->Picture->Bitmap->Assign(m_pImgCheckState[0]);
|
||||
m_imgSongCheck->Invalidate();
|
||||
}
|
||||
|
||||
if( ( ExtractFileExt(m_editFileName->Text).CompareIC(".wav")==0 ||
|
||||
ExtractFileExt(m_editFileName->Text).CompareIC(".mp3")==0 ) &&
|
||||
( m_imgComposeCheck->Tag==1 || m_imgSongCheck->Tag==1 ) ){
|
||||
m_btnOk->Enabled = true;
|
||||
}
|
||||
else{
|
||||
m_btnOk->Enabled = false;
|
||||
}
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
|
||||
void __fastcall TSaveForm::FormCreate(TObject *Sender)
|
||||
{
|
||||
m_lblCaption->Font->Color = RGB(60,43,23);
|
||||
|
||||
m_pImgCheckState[0] = new TBitmap();
|
||||
m_pImgCheckState[0]->LoadFromResourceName(int(HInstance), L"BmpUnchecked");
|
||||
m_pImgCheckState[1] = new TBitmap();
|
||||
m_pImgCheckState[1]->LoadFromResourceName(int(HInstance), L"BmpChecked");
|
||||
|
||||
//绘制圆角窗体
|
||||
HRGN hRgn = CreateRoundRectRgn( 0, 0, Width+1, Height+1, 16, 16 );
|
||||
SetWindowRgn( Handle, hRgn, false );
|
||||
DeleteObject( hRgn );
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
|
||||
void __fastcall TSaveForm::FormDestroy(TObject *Sender)
|
||||
{
|
||||
for( int i=0; i<2; i++ ){
|
||||
if( m_pImgCheckState[i] )
|
||||
delete m_pImgCheckState[i];
|
||||
}
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
|
||||
void __fastcall TSaveForm::BtnBrowseClick(TObject *Sender)
|
||||
{
|
||||
TSaveDialog * pDlg = new TSaveDialog(NULL);
|
||||
pDlg->Options << ofCreatePrompt << ofOverwritePrompt;
|
||||
pDlg->Title = L"保存为";
|
||||
pDlg->FileName = ExtractFileName( m_editFileName->Text );
|
||||
pDlg->InitialDir = ExtractFilePath( m_editFileName->Text );
|
||||
|
||||
#ifdef _PROFESSIONAL
|
||||
pDlg->Filter = "mp3文件 (*.mp3)|*.MP3|Wave文件 (*.wav)|*.WAV|midi文件 (*.mid)|*.MID";
|
||||
#else
|
||||
pDlg->Filter = "mp3文件 (*.mp3)|*.MP3|Wave文件 (*.wav)|*.WAV";
|
||||
#endif
|
||||
|
||||
if( ExtractFileExt(m_editFileName->Text).CompareIC(".mp3")==0 ){
|
||||
m_iSaveType = FILETYPE_MP3;
|
||||
}
|
||||
else if( ExtractFileExt(m_editFileName->Text).CompareIC(".wav")==0 ){
|
||||
m_iSaveType = FILETYPE_WAVE;
|
||||
}
|
||||
else if( ExtractFileExt(m_editFileName->Text).CompareIC(".mid")==0 ){
|
||||
#ifdef _PROFESSIONAL
|
||||
m_iSaveType = FILETYPE_MIDI;
|
||||
#else
|
||||
m_iSaveType = FILETYPE_MP3;
|
||||
#endif
|
||||
}
|
||||
|
||||
pDlg->FilterIndex = m_iSaveType + 1;
|
||||
|
||||
String strType;
|
||||
if( m_iSaveType==FILETYPE_WAVE ){
|
||||
strType = "wav";
|
||||
}
|
||||
else if( m_iSaveType==FILETYPE_MP3 ){
|
||||
strType = "mp3";
|
||||
}
|
||||
else if( m_iSaveType==FILETYPE_MIDI ){
|
||||
strType = "mid";
|
||||
}
|
||||
|
||||
pDlg->DefaultExt = strType;
|
||||
|
||||
if( pDlg->Execute(Handle) ){
|
||||
m_editFileName->Text = pDlg->FileName;
|
||||
#ifdef _PROFESSIONAL
|
||||
if( ExtractFileExt(m_editFileName->Text).CompareIC(".mid")==0 ){
|
||||
if( m_imgComposeCheck->Tag!=1 ){
|
||||
m_imgComposeCheck->Tag = 1;
|
||||
m_imgComposeCheck->Picture->Bitmap->Assign(m_pImgCheckState[m_imgComposeCheck->Tag]);
|
||||
m_imgComposeCheck->Invalidate();
|
||||
}
|
||||
|
||||
if( m_imgSongCheck->Tag != 0 ){
|
||||
m_imgSongCheck->Tag = 0;
|
||||
m_imgSongCheck->Picture->Bitmap->Assign(m_pImgCheckState[m_imgSongCheck->Tag]);
|
||||
m_imgSongCheck->Invalidate();
|
||||
}
|
||||
|
||||
m_btnOk->Enabled = true;
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
delete pDlg;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
|
||||
void __fastcall TSaveForm::FileNameChange(TObject *Sender)
|
||||
{
|
||||
if( ( ExtractFileExt(m_editFileName->Text).CompareIC(".wav")==0 ||
|
||||
ExtractFileExt(m_editFileName->Text).CompareIC(".mp3")==0 ) &&
|
||||
( m_imgComposeCheck->Tag==1 || m_imgSongCheck->Tag==1 ) ){
|
||||
m_btnOk->Enabled = true;
|
||||
}
|
||||
#ifdef _PROFESSIONAL
|
||||
else if( ExtractFileExt(m_editFileName->Text).CompareIC(".mid")==0 &&
|
||||
m_imgComposeCheck->Tag==1 && m_imgSongCheck->Tag==0 ){
|
||||
|
||||
m_btnOk->Enabled = true;
|
||||
}
|
||||
#endif
|
||||
else{
|
||||
m_btnOk->Enabled = false;
|
||||
}
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
|
||||
void __fastcall TSaveForm::FormKeyDown(TObject *Sender, WORD &Key, TShiftState Shift)
|
||||
{
|
||||
switch( Key ){
|
||||
case VK_RETURN:
|
||||
if( m_btnOk->Enabled )
|
||||
ModalResult = mrOk;
|
||||
break;
|
||||
|
||||
case VK_ESCAPE:
|
||||
ModalResult = mrCancel;
|
||||
break;
|
||||
}
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
|
||||
void __fastcall TSaveForm::FormActivate(TObject *Sender)
|
||||
{
|
||||
if( ExtractFileExt(m_editFileName->Text).CompareIC(".mp3")==0 ){
|
||||
m_iSaveType = FILETYPE_MP3;
|
||||
}
|
||||
else if( ExtractFileExt(m_editFileName->Text).CompareIC(".wav")==0 ){
|
||||
m_iSaveType = FILETYPE_WAVE;
|
||||
}
|
||||
#ifdef _PROFESSIONAL
|
||||
else if( ExtractFileExt(m_editFileName->Text).CompareIC(".mid")==0 ){
|
||||
m_iSaveType = FILETYPE_MIDI;
|
||||
}
|
||||
|
||||
if( m_iSaveType==FILETYPE_MIDI ){
|
||||
m_imgComposeCheck->Tag = 1;
|
||||
m_imgSongCheck->Tag = 0;
|
||||
}
|
||||
#endif
|
||||
m_imgComposeCheck->Picture->Bitmap->Assign(m_pImgCheckState[m_imgComposeCheck->Tag]);
|
||||
m_imgSongCheck->Picture->Bitmap->Assign(m_pImgCheckState[m_imgSongCheck->Tag]);
|
||||
|
||||
FileNameChange( NULL );
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
|
||||
|
||||
Reference in New Issue
Block a user