//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "MainForm.h"
#include "CoolForm.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TfrmMain *frmMain;
//---------------------------------------------------------------------------
__fastcall TfrmMain::TfrmMain(TComponent* Owner) : TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TfrmMain::FormCreate(TObject *Sender)
{
Width = 500;
Height = 510;
pgeMain->Align = alClient;
pnlMovie->Align = alClient;
imgAlbumCover->Align = alClient;
shtMusic->DoubleBuffered = true;
shtMovie->DoubleBuffered = true;
pnlMovie->DoubleBuffered = true;
dtpToday->Date = Now();
}
//---------------------------------------------------------------------------
//******************************************************************************
//******************************************************************************
//******************************************************************************
// TToolBar stuff
//******************************************************************************
/*
When we dock on the top panel, make sure to resize it so it is visible.
*/
void __fastcall TfrmMain::pnlTop1DockDrop(TObject *Sender, TDragDockObject *Source, int X, int Y)
{
pnlTop1->AutoSize = false;
pnlTop1->Height = 50;
}
//---------------------------------------------------------------------------
/*
When we move a toolbar off of a panel, make sure the panel hides itself.
*/
void __fastcall TfrmMain::barTools1StartDock(TObject *Sender, TDragDockObject *&DragObject)
{
pnlTop1->AutoSize = true;
pnlLeft->AutoSize = true;
}
//---------------------------------------------------------------------------
/*
When we dock on the left panel, make sure to resize it so it is visible.
*/
void __fastcall TfrmMain::pnlLeftDockDrop(TObject *Sender, TDragDockObject *Source, int X, int Y)
{
pnlLeft->AutoSize = false;
pnlLeft->Width = 150;
}
//---------------------------------------------------------------------------
//******************************************************************************
//******************************************************************************
//******************************************************************************
// TCoolBar stuff
//******************************************************************************
void __fastcall TfrmMain::btnShowToolsClick(TObject *Sender)
{
barTools1->Show();
barTools2->Show();
}
//---------------------------------------------------------------------------
void __fastcall TfrmMain::btnHideToolsClick(TObject *Sender)
{
barTools1->Hide();
barTools2->Hide();
}
//---------------------------------------------------------------------------
void __fastcall TfrmMain::barTools2StartDock(TObject *Sender, TDragDockObject *&DragObject)
{
pnlTop1->AutoSize = true;
pnlLeft->AutoSize = true;
}
//---------------------------------------------------------------------------
void __fastcall TfrmMain::btnShowFormClick(TObject *Sender)
{
frmCool->Show();
}
//---------------------------------------------------------------------------
//******************************************************************************
//******************************************************************************
//******************************************************************************
// TMediaPlayer stuff
//******************************************************************************
void __fastcall TfrmMain::pnlMovieResize(TObject *Sender)
{
if (!chkStretch->Checked)
return;
TRect rect = pnlMovie->ClientRect;
rect.Bottom = rect.Bottom - 2;
rect.Right = rect.Right -2;
mpMovie->DisplayRect = rect;
}
//---------------------------------------------------------------------------
void __fastcall TfrmMain::btnOpenWAVClick(TObject *Sender)
{
dlgFileOpen->Filter = "WAV Files (*.wav) | *.wav";
dlgFileOpen->DefaultExt = "*.wav";
if (dlgFileOpen->Execute())
{
mpWAV->FileName = dlgFileOpen->FileName;
mpWAV->Open();
}
}
//---------------------------------------------------------------------------
void __fastcall TfrmMain::btnOpenMovieClick(TObject *Sender)
{
dlgFileOpen->Filter = "AVI Files (*.avi) | *.avi";
dlgFileOpen->DefaultExt = "*.avi";
if (dlgFileOpen->Execute())
{
mpMovie->FileName = dlgFileOpen->FileName;
mpMovie->Display = 0; // separate window
mpMovie->Open();
}
// If the movie should be embedded, put it on the panel
if (chkEmbedded->Checked)
{
mpMovie->Display = pnlMovie;
chkStretchClick(Sender);
}
}
//---------------------------------------------------------------------------
void __fastcall TfrmMain::chkStretchClick(TObject *Sender)
{
TRect rect;
// Adjust rect to show bevels
if (chkStretch->Checked)
{
rect = pnlMovie->ClientRect;
rect.Bottom = rect.Bottom - 2;
rect.Right = rect.Right - 2;
rect.Top = 2;
rect.Left = 2;
}
else // some arbitrary size
{
rect.Bottom = 241;
rect.Right = 321;
rect.Left = 2;
rect.Top = 2;
}
mpMovie->DisplayRect = rect;
}
//---------------------------------------------------------------------------
//******************************************************************************
//******************************************************************************
//******************************************************************************
// TScrollBox stuff
//******************************************************************************
void __fastcall TfrmMain::btnPopulateClick(TObject *Sender)
{
static int bcount = 1;
sboxButtons->VertScrollBar->Position = 0;
int t = sboxButtons->ComponentCount * (25 + 5);
for (int i = 0; i < 10; i++)
{
TButton *b = new TButton(sboxButtons); // owner deletes the button
b->Parent = sboxButtons; // parent paints the button
b->Top = t;
b->Left = 10;
b->Caption = Format("Button %d", ARRAYOFCONST((bcount)));
bcount++;
t += b->Height + 5;
}
}
//---------------------------------------------------------------------------
void __fastcall TfrmMain::barScrollSizeChange(TObject *Sender)
{
sboxButtons->VertScrollBar->Increment = (short)barScrollSize->Position;
}
//---------------------------------------------------------------------------