Files
AC_Pro/PlayTimePanel.cpp
T
2026-06-13 00:05:19 +08:00

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 );
}
}
//---------------------------------------------------------------------------