⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 unit2.cpp

📁 线程调用参数然后输出,参数使用来控制计算的输出
💻 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 + -