123 lines
3.2 KiB
C++
123 lines
3.2 KiB
C++
//---------------------------------------------------------------------------
|
|
#include <vcl.h>
|
|
#pragma hdrstop
|
|
|
|
#include "GlobalUnit.h"
|
|
#include "stdio.h"
|
|
#include "PlayTimePanel.h"
|
|
//---------------------------------------------------------------------------
|
|
#pragma package(smart_init)
|
|
|
|
#define SHOW_LEFT 8
|
|
#define SHOW_TOP 5
|
|
#define SHOW_BOTTOM 24
|
|
#define SHOW_WIDTH_1 6
|
|
#define SHOW_WIDTH_2 15
|
|
#define SHOW_WIDTH_3 22
|
|
|
|
const COLORREF CLR_BACK = RGB( 74, 80, 88 ),
|
|
CLR_TEXT = RGB( 201, 214, 229 );
|
|
|
|
__fastcall TPlayTimePanel::TPlayTimePanel(TComponent *Owner) : TPanel(Owner)
|
|
{
|
|
memset( m_iTime, 0, sizeof(m_iTime) );
|
|
|
|
m_iLeft[0] = SHOW_LEFT;
|
|
m_iRight[0] = m_iLeft[0] + SHOW_WIDTH_3;
|
|
m_iLeft[1] = m_iRight[0] + SHOW_WIDTH_1;
|
|
m_iRight[1] = m_iLeft[1] + SHOW_WIDTH_2;
|
|
m_iLeft[2] = m_iRight[1] + SHOW_WIDTH_1;
|
|
m_iRight[2] = m_iLeft[2] + SHOW_WIDTH_3;
|
|
}
|
|
//---------------------------------------------------------------------------
|
|
|
|
__fastcall TPlayTimePanel::~TPlayTimePanel()
|
|
{
|
|
|
|
}
|
|
//---------------------------------------------------------------------------
|
|
|
|
void __fastcall TPlayTimePanel::CreateWnd()
|
|
{
|
|
TPanel::CreateWnd();
|
|
|
|
Canvas->Font->Name = "Tahoma";
|
|
Canvas->Font->Color = CLR_TEXT;
|
|
Canvas->Font->Size = g_szFont9;
|
|
Canvas->Font->Pitch = TFontPitch::fpFixed;
|
|
Canvas->Font->Quality = TFontQuality::fqClearTypeNatural;
|
|
Canvas->Brush->Style = bsClear;
|
|
|
|
Hint = "µ±Ç°Î»ÖÃ(½ÚÅÄ)";
|
|
ShowHint = true;
|
|
}
|
|
//---------------------------------------------------------------------------
|
|
|
|
void __fastcall TPlayTimePanel::Paint()
|
|
{
|
|
char strTime[4];
|
|
|
|
sprintf( strTime, "%03d", m_iTime[0] );
|
|
Canvas->TextOut( m_iLeft[0], SHOW_TOP, strTime );
|
|
|
|
sprintf( strTime, "%02d", m_iTime[1] );
|
|
Canvas->TextOut( m_iLeft[1], SHOW_TOP, strTime );
|
|
|
|
sprintf( strTime, "%03d", m_iTime[2] );
|
|
Canvas->TextOut( m_iLeft[2], SHOW_TOP, strTime );
|
|
}
|
|
//---------------------------------------------------------------------------
|
|
|
|
void __fastcall TPlayTimePanel::WMEraseBkgnd(TWMEraseBkgnd &Message)
|
|
{
|
|
TCanvas* pCanvas = new TCanvas();
|
|
pCanvas->Handle = Message.DC;
|
|
|
|
TRect rect = GetClientRect();
|
|
|
|
pCanvas->Brush->Color = CLR_BACK; // »æÖƵ×É«
|
|
pCanvas->FillRect(rect);
|
|
|
|
pCanvas->Font->Name = "Tahoma";
|
|
pCanvas->Font->Color = CLR_TEXT;
|
|
pCanvas->Font->Size = g_szFont9;
|
|
pCanvas->Font->Pitch = TFontPitch::fpFixed;
|
|
pCanvas->Font->Quality = TFontQuality::fqClearTypeNatural;
|
|
pCanvas->Brush->Style = bsClear;
|
|
|
|
int iTop = SHOW_TOP - 1;
|
|
pCanvas->TextOut( m_iLeft[1] - SHOW_WIDTH_1, iTop, ":" );
|
|
pCanvas->TextOut( m_iLeft[2] - SHOW_WIDTH_1, iTop, ":" );
|
|
|
|
delete pCanvas;
|
|
}
|
|
//---------------------------------------------------------------------------
|
|
|
|
void __fastcall TPlayTimePanel::SetTime( int iTime[3] )
|
|
{
|
|
TRect rect(0,SHOW_TOP,0,SHOW_BOTTOM);
|
|
|
|
if( iTime[0]!=m_iTime[0] ){
|
|
m_iTime[0] = iTime[0];
|
|
rect.left = m_iLeft[0];
|
|
rect.right = m_iRight[0];
|
|
InvalidateRect( Handle, &rect, FALSE );
|
|
}
|
|
|
|
if( iTime[1]!=m_iTime[1] ){
|
|
m_iTime[1] = iTime[1];
|
|
rect.left = m_iLeft[1];
|
|
rect.right = m_iRight[1];
|
|
InvalidateRect( Handle, &rect, FALSE );
|
|
}
|
|
|
|
if( iTime[2]!=m_iTime[2] ){
|
|
m_iTime[2] = iTime[2];
|
|
rect.left = m_iLeft[2];
|
|
rect.right = m_iRight[2];
|
|
InvalidateRect( Handle, &rect, FALSE );
|
|
}
|
|
}
|
|
//---------------------------------------------------------------------------
|
|
|