148 lines
4.2 KiB
C++
148 lines
4.2 KiB
C++
//---------------------------------------------------------------------------
|
|
|
|
#include <vcl.h>
|
|
#pragma hdrstop
|
|
|
|
#include "GameUnit.h"
|
|
#include "ChartFormUnit.h"
|
|
#include "ContentPanel.h"
|
|
#include "GlobalUnit.h"
|
|
#include "UtilityUnit.h"
|
|
//---------------------------------------------------------------------------
|
|
#pragma package(smart_init)
|
|
#pragma resource "*.dfm"
|
|
TChartForm *ChartForm = NULL;
|
|
|
|
//char * u_sTimeUnit[] = {"5秒", "10秒", "20秒", "30秒", "1分",
|
|
// "2分", "5分", "10分", "30分", "1小时"};
|
|
//---------------------------------------------------------------------------
|
|
__fastcall TChartForm::TChartForm(TComponent* Owner)
|
|
: TForm(Owner)
|
|
{
|
|
// m_lblTimeUnit->Caption = String(u_sTimeUnit[0]);
|
|
}
|
|
//---------------------------------------------------------------------------
|
|
void __fastcall TChartForm::FormClose(TObject *Sender, TCloseAction &Action)
|
|
{
|
|
ChartForm->Hide();
|
|
delete ChartForm;
|
|
ChartForm = NULL;
|
|
}
|
|
//---------------------------------------------------------------------------
|
|
void __fastcall TChartForm::FormCreate(TObject *Sender)
|
|
{
|
|
/////////////////////////////////////
|
|
//test
|
|
// TDot dot;
|
|
// for(int i=0; i<4; i++){
|
|
// g_aDots[i].clear();
|
|
// g_aDots[i].push_back(dot);
|
|
// }
|
|
//
|
|
// int counts[2] = {0};
|
|
// int profile = 0;
|
|
// int tm = time(NULL);
|
|
// for(int i=0; i<2000; i++){
|
|
// profile += Random(2000) - 1000;
|
|
// dot.val = profile;
|
|
// dot.ts = tm++;
|
|
// g_aDots[0].push_back(dot);
|
|
//
|
|
// counts[Random(2)]++;
|
|
// dot.val = counts[0] - counts[1];
|
|
// dot.ts = tm++;
|
|
// g_aDots[3].push_back(dot);
|
|
// }
|
|
//
|
|
///////////////////////////////////////
|
|
|
|
m_panChart = new TContentPanel(this);
|
|
m_panChart->Parent = this;
|
|
m_panChart->Align = alClient;
|
|
m_panChart->Show();
|
|
|
|
ShowRunTime();
|
|
}
|
|
//---------------------------------------------------------------------------
|
|
void __fastcall TChartForm::UMChartUpdate(TMessage &msg)
|
|
{
|
|
int mod = msg.WParam,
|
|
op = msg.LParam;
|
|
((TContentPanel*)m_panChart)->UpdateView(mod, op);
|
|
}
|
|
//---------------------------------------------------------------------------
|
|
void __fastcall TChartForm::UMRunTime(TMessage &msg)
|
|
{
|
|
ShowRunTime();
|
|
}
|
|
//---------------------------------------------------------------------------
|
|
void __fastcall TChartForm::ShowRunTime()
|
|
{
|
|
int d = g_aGames.runTime / 86400,
|
|
r = g_aGames.runTime - d * 86400,
|
|
h, m, s;
|
|
h = r / 3600, r -= h * 3600;
|
|
m = r / 60, r -= m * 60;
|
|
s = r;
|
|
|
|
m_lblRunTime->Caption = Format(String("%d天 %.2d:%.2d:%.2d"), ARRAYOFCONST((d, h, m, s)));
|
|
}
|
|
//---------------------------------------------------------------------------
|
|
void __fastcall TChartForm::TopDrawTab(TObject *Sender, TCanvas *TabCanvas, TRect &R, int Index, bool Selected)
|
|
{
|
|
TTabSet* pTS = (TTabSet*)Sender;
|
|
|
|
int w = TabCanvas->TextWidth((*pTS->Tabs)[Index]),
|
|
l = ( R.Width() - w ) / 2,
|
|
h = TabCanvas->TextHeight((*pTS->Tabs)[Index]),
|
|
t = ( R.Height() - h ) /2;
|
|
|
|
if( Index==0 )
|
|
TabCanvas->Font->Color = clBlue;
|
|
else if( Index==1 )
|
|
TabCanvas->Font->Color = clGreen;
|
|
else if( Index==2 )
|
|
TabCanvas->Font->Color = clRed;
|
|
else
|
|
TabCanvas->Font->Color = clWebRoyalBlue;
|
|
|
|
TabCanvas->TextOut(R.Left + l, R.Top + t, (*pTS->Tabs)[Index]);
|
|
|
|
TabCanvas->Font->Color = clBlack;
|
|
}
|
|
//---------------------------------------------------------------------------
|
|
void __fastcall TChartForm::TopMeasureTab(TObject *Sender, int Index, int &TabWidth)
|
|
{
|
|
TabWidth = DPIX(80);
|
|
}
|
|
//---------------------------------------------------------------------------
|
|
void __fastcall TChartForm::FormResize(TObject *Sender)
|
|
{
|
|
int l = DPIX(150) + (ClientWidth - m_panTU->Width) / 2;
|
|
int lB = DPIX(420);
|
|
if(l<lB) l = lB;
|
|
m_panTU->Left = l;
|
|
|
|
// if(WindowState==wsMaximized)
|
|
// FormStyle = fsNormal;
|
|
// else if(Application->MainForm->WindowState==wsMaximized)
|
|
// FormStyle = fsStayOnTop;
|
|
}
|
|
//---------------------------------------------------------------------------
|
|
void __fastcall TChartForm::TopChange(TObject *Sender, int NewTab, bool &AllowChange)
|
|
{
|
|
((TContentPanel*)m_panChart)->SetView(NewTab);
|
|
}
|
|
//---------------------------------------------------------------------------
|
|
|
|
void __fastcall TChartForm::FormKeyDown(TObject *Sender, WORD &Key, TShiftState Shift)
|
|
{
|
|
ResetIdle();
|
|
|
|
if(Key==37 || Key==39){
|
|
((TContentPanel*)m_panChart)->PanKeyDown(Key);
|
|
}
|
|
}
|
|
//---------------------------------------------------------------------------
|
|
|