15,440
社区成员
发帖
与我相关
我的任务
分享
#ifndef _DataGraph_H
#define _DataGraph_H
#include <ComCtrls.hpp>
#include <vector>
using namespace std;
class DataGraph
{
private:
int timeInterval;
int amplitude;
int spaceFactor;
float space;
struct Point
{
int x;
int y;
}newPoint,viewPoint;
unsigned scalePoints,pointsCount; //坐标点数,实际点数
vector<Point> points;
TPaintBox *paintBox;
TCanvas *canvas;
TStatusBar *statusBar;
TStrings *memo;
TTimer *timer;
float LB,RB,UB,DB,UM,DM;
bool bFirstDraw,isFirstPoint;
public:
DataGraph();
// ~DataGraph();
void setTimeInterval(int timeInterval);
void setAmplitude(int amplitude);
void setSpace(int spaceFactor);
bool isFirstDraw() const;
void getPoint();
void pointToViewPoint();
void initGraph();
void updateParameter();
void beginDraw();
void stopDraw();
void resetDraw();
void drawGraph();
bool isDrawEnd();
void showStatus();
void SavaToFile();
void LoadFromFile();
void drawGraphFromPoints();
};
struct fileHeader
{
const static char fileStr[20];
const static int fileFlag;
int timeInterval;
int amplitude;
int spaceFactor;
unsigned pointsCount;
};
extern DataGraph *aDataGraph;
#endif
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "Unit1.h"
#include "About.h"
#include "DataGraph.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm1::btnStartClick(TObject *Sender)
{
aDataGraph->beginDraw();
}
//---------------------------------------------------------------------------
void __fastcall TForm1::btnStopClick(TObject *Sender)
{
aDataGraph->stopDraw();
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Timer1Timer(TObject *Sender)
{
aDataGraph->drawGraph();
}
//---------------------------------------------------------------------------
void __fastcall TForm1::PaintBox1Paint(TObject *Sender)
{
if(aDataGraph->isFirstDraw())
aDataGraph->initGraph();
else
aDataGraph->drawGraphFromPoints();
}
//---------------------------------------------------------------------------
void __fastcall TForm1::mnuExitClick(TObject *Sender)
{
Close();
}
//---------------------------------------------------------------------------
void __fastcall TForm1::edtAmplitudeChange(TObject *Sender)
{
aDataGraph->setAmplitude(StrToInt(edtAmplitude->Text));
aDataGraph->showStatus();
}
//---------------------------------------------------------------------------
void __fastcall TForm1::edtTimeIntervalChange(TObject *Sender)
{
aDataGraph->setTimeInterval(10*StrToInt(edtTimeInterval->Text));
aDataGraph->showStatus();
}
//---------------------------------------------------------------------------
void __fastcall TForm1::edtSpaceFactorChange(TObject *Sender)
{
aDataGraph->setSpace(StrToInt(edtSpaceFactor->Text));
aDataGraph->showStatus();
}
//---------------------------------------------------------------------------
void __fastcall TForm1::mnuAboutClick(TObject *Sender)
{
frmAbout->ShowModal();
}
//---------------------------------------------------------------------------
void __fastcall TForm1::FormShow(TObject *Sender)
{
aDataGraph->showStatus();
}
//---------------------------------------------------------------------------
void __fastcall TForm1::FormCreate(TObject *Sender)
{
aDataGraph=new DataGraph();
}
//---------------------------------------------------------------------------
void __fastcall TForm1::FormDestroy(TObject *Sender)
{
delete aDataGraph;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::mnuSaveClick(TObject *Sender)
{
aDataGraph->SavaToFile();
}
//---------------------------------------------------------------------------
void __fastcall TForm1::mnuOpenClick(TObject *Sender)
{
aDataGraph->LoadFromFile();
}
//---------------------------------------------------------------------------