📄 unit2.cpp
字号:
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "spmdll.h"
#include "Unit1.h"
#include "Unit2.h"
#pragma package(smart_init)
//---------------------------------------------------------------------------
// Important: Methods and properties of objects in VCL can only be
// used in a method called using Synchronize, for example:
//
// Synchronize(UpdateCaption);
//
// where UpdateCaption could look like:
//
// void __fastcall th1::UpdateCaption()
// {
// Form1->Caption = "Updated in a thread";
// }
//---------------------------------------------------------------------------
void DrawCordinate()
{
int i;
int minX, minY, maxX, maxY;
POINT m_ptStart, m_ptEnd;
Form1->PaintBox1->Canvas->Pen->Color = clBlue;
Form1->PaintBox1->Canvas->Pen->Mode = pmBlack;
Form1->PaintBox1->Canvas->Pen->Width = 2;
// PaintBox1->Canvas->Brush->Style = bs
minX = Form1->PaintBox1->Width /10;
minY = Form1->PaintBox1->Height/10;
maxX = Form1->PaintBox1->Width*95/100;
maxY = Form1->PaintBox1->Height*95/100;
m_ptStart.x = minX;
m_ptStart.y = maxY;
m_ptEnd.x = maxX;
m_ptEnd.y = maxY;
Form1->PaintBox1->Canvas->MoveTo(m_ptStart.x, m_ptStart.y);
Form1->PaintBox1->Canvas->LineTo(m_ptEnd.x, m_ptEnd.y);
m_ptStart.x = minX;
m_ptStart.y = maxY;
m_ptEnd.x = minX;
m_ptEnd.y = minY;
Form1->PaintBox1->Canvas->MoveTo(m_ptStart.x, m_ptStart.y);
Form1->PaintBox1->Canvas->LineTo(m_ptEnd.x, m_ptEnd.y);
Form1->PaintBox1->Canvas->Pen->Width = 1;
for(i=0;i<6;i++)
{
m_ptStart.x = (maxX - minX) / 6 * (i + 1) + minX;
m_ptStart.y = maxY;
m_ptEnd.x = m_ptStart.x;
m_ptEnd.y = m_ptStart.y - 10;
Form1->PaintBox1->Canvas->MoveTo(m_ptStart.x, m_ptStart.y);
Form1->PaintBox1->Canvas->LineTo(m_ptEnd.x, m_ptEnd.y);
Form1->PaintBox1->Canvas->TextOutA(m_ptStart.x - 10, m_ptStart.y + 3, IntToStr(200 * i + 200));
}
for(i=0;i<7;i++)
{
m_ptStart.x = minX;
m_ptStart.y = maxY - (maxY - minY) / 7 * (i + 1);
m_ptEnd.x = m_ptStart.x + 10;
m_ptEnd.y = m_ptStart.y;
Form1->PaintBox1->Canvas->MoveTo(m_ptStart.x, m_ptStart.y);
Form1->PaintBox1->Canvas->LineTo(m_ptEnd.x, m_ptEnd.y);
Form1->PaintBox1->Canvas->TextOutA(m_ptStart.x - 35, m_ptStart.y, IntToStr(10000 * i + 10000));
}
}
void DrawSpectrum()
{
int ret, i;
float factorX, factorY;
POINT m_ptStart, m_ptEnd;
Form1->PaintBox1->Canvas->FillRect(Form1->PaintBox1->ClientRect);
DrawCordinate();
Form1->PaintBox1->Canvas->Pen->Mode = pmCopy;
factorX = (float)Form1->PaintBox1->Width * 85.0 / 100.0 / 1200.0;
factorY = (float)Form1->PaintBox1->Height * 85.0 / 100.0 / 70000.0;
m_ptStart.x=Form1->PaintBox1->Width/10.0 + Form1->WL[0] * factorX;
m_ptStart.y=Form1->PaintBox1->Height*85.0/100.0 -Form1-> m_spectrum[0] * factorY;
Form1->PaintBox1->Canvas->MoveTo(m_ptStart.x, m_ptStart.y);
for(i=0;i<3648;i++)
{
m_ptEnd.x=Form1->PaintBox1->Width/10.0 + Form1->WL[i] * factorX;
m_ptEnd.y=Form1->PaintBox1->Height*85.0/100.0 -Form1->m_spectrum[i] * factorY;
Form1->PaintBox1->Canvas->LineTo(m_ptEnd.x, m_ptEnd.y);
}
}
//---------------------------------------------------------------------------
__fastcall th1::th1(bool CreateSuspended)
: TThread(CreateSuspended)
{
FreeOnTerminate = true;
Resume();
//Priority=tpTimeCritical; //最高优先级别
}
//--------------------------------------------------------------------------
void __fastcall th1::Execute()
{
while(!Terminated)
{
if((StrToInt(Form1->Edit2->Text)!=Form1->m_integration)||(StrToInt(Form1->Edit3->Text)!=Form1->m_average)||(StrToInt(Form1->Edit4->Text)!=Form1->m_boxcar)){
Form1->m_integration = StrToInt(Form1->Edit2->Text);
Form1->m_average = StrToInt(Form1->Edit3->Text);
Form1->m_boxcar = StrToInt(Form1->Edit4->Text);
setScanParameter(Form1->m_integration, Form1->m_average, Form1->m_boxcar);
}
DoScan();
getSpectrum(Form1->m_spectrum);
getWavelengths(Form1->WL);
DrawCordinate();
DrawSpectrum();
int pix = StrToInt(Form1->Edit1->Text);
if(pix<3648)
{
Form1->Label18->Caption = Form1->WL[pix];
Form1->Label1->Caption = Form1->m_spectrum[pix];
}
Form1->Label13->Caption = FloatToStr(get_littleX());
Form1->Label14->Caption = FloatToStr(get_littleY());
Form1->Label15->Caption = FloatToStr(get_dominant());
Form1->Label16->Caption = FloatToStr(get_purity());
Form1->Label17->Caption = FloatToStr(get_CCT());
}
}
//---------------------------------------------------------------------------
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -