📄 pointreport.cpp
字号:
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "pointreport.h"
#include "Unit1.h"
#include "dir.h"
#include "stdio.h"
#include "ThreadE.h"
//#include "IO.h"
#include "printers.hpp"
typedef void (*ExecFun)(void);
void waverevise(void);
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TfmDpoint *fmDpoint;
//---------------------------------------------------------------------------
__fastcall TfmDpoint::TfmDpoint(TComponent* Owner)
: TForm(Owner)
{
bRun = false;
}
//---------------------------------------------------------------------------
void __fastcall TfmDpoint::FormShow(TObject *Sender)
{
//时间读取
SYSTEMTIME time;
GetLocalTime(&time);
Str="";
Str=IntToStr(time.wYear); Str+="-";
Str+=IntToStr(time.wMonth); Str+="-";
Str+=IntToStr(time.wDay); Str+=" ";
Label6->Caption=Str;
Str="";
Str+=IntToStr(time.wHour); Str+=":";
Str+=IntToStr(time.wMinute);// Str+=":";
//Str+=IntToStr(Form1->ptc.dattim[6]);
Label9->Caption=Str;
mcs=Form1->mcs;
wn=Form1->wn;
if(Form1->bSaveFile)
Edit6->Text=Form1->filename;
else
Edit6->Text="未命名";
Str="";
Button4->Enabled = false;
StringGrid1->Cells[2][1]=0;
StringGrid1->Cells[3][1]=0;
bModify=false;
//---------------------------------------------------------------------
//表格填写
StringGrid1->Font->Charset=GB2312_CHARSET;
for(int i=1;i<=20;i=i+2)
{
StringGrid1->Cells[0][i]=i;
// StringGrid1->Cells[4][i]=i+1;
}
StringGrid1->Cells[0][0]="序号";
StringGrid1->Cells[1][0]="波长(nm)";
StringGrid1->Cells[2][0]="吸光度(Abs)";
StringGrid1->Cells[3][0]="透过率(T)";
StringGrid1->Font->Color=clBlue;
/*
StringGrid1->Cells[4][0]="序号";
StringGrid1->Cells[5][0]="波长(nm)";
StringGrid1->Cells[6][0]="吸光度(Abs)";
StringGrid1->Cells[7][0]="透过率(T)";
//StringGrid1->Font->Color=clBlack;
*/
//StringGrid1->DefaultColWidth=(StringGrid1->Width-4)/4;
//数据读取
}
//---------------------------------------------------------------------------
void __fastcall TfmDpoint::FormClose(TObject *Sender, TCloseAction &Action)
{
Form1->EnableMenuItems();
//Form1->Close();
}
//---------------------------------------------------------------------------
void __fastcall TfmDpoint::StringGrid1SelectCell(TObject *Sender, int ACol,
int ARow, bool &CanSelect)
{
if(ACol==1&&ARow==StringGrid1->RowCount-1&&(StringGrid1->Cells[3][StringGrid1->RowCount-1]=="0"||StringGrid1->Cells[3][StringGrid1->RowCount-1]=="")
&& Button4->Enabled == false)
{
StringGrid1->Options<<goEditing;
bModify=true;
} ////////////////////
else
StringGrid1->Options>>goEditing;
if(ACol==0)
StringGrid1->Options<<goRowSelect;
else
StringGrid1->Options>>goRowSelect;
CanSelect = true;
if(CanSelect == false)
{
CanSelect = false;
}
//Label1->Caption=ACol;
//Label2->Caption=ARow;
Col=ACol;
Row=ARow;
/*if(ACol==5&&ARow==StringGrid1->RowCount-1&&StringGrid1->Cells[2][StringGrid1->RowCount-1]!="")
{
StringGrid1->Options<<goEditing;
bModify=true;
}
else
StringGrid1->Options>>goEditing;
//if(ARow>1) */
}
//---------------------------------------------------------------------------
void __fastcall TfmDpoint::Button1Click(TObject *Sender)
{
if(bModify)
switch(Application->MessageBox("当前报告未保存,是否保存?","提示",MB_YESNOCANCEL))
{
case 6:{Button2Click(Sender); init(); break;}
case 7:{init();break;}
}
else
init();
Button4->Enabled=false;
}
//---------------------------------------------------------------------------
void __fastcall TfmDpoint::Edit1Change(TObject *Sender)
{
bModify=true;
}
//---------------------------------------------------------------------------
void __fastcall TfmDpoint::Edit2Change(TObject *Sender)
{
bModify=true;
}
//---------------------------------------------------------------------------
void __fastcall TfmDpoint::Edit4Change(TObject *Sender)
{
bModify=true;
}
//---------------------------------------------------------------------------
void __fastcall TfmDpoint::Button2Click(TObject *Sender)
{
int iFileHandle;
char filehead[10];
strcpy(filehead,"wfz26-uvr");
char szFileName[MAXFILE+4];
char apart[50];
strcpy(apart,Edit1->Text.c_str());
char pihao[50];
strcpy(pihao,Edit2->Text.c_str());
char samplename[50];
strcpy(samplename,Edit3->Text.c_str());
char operater[10];
strcpy(operater,Edit4->Text.c_str());
char date[16];
strcpy(date,Label6->Caption.c_str());
char time[10];
strcpy(time,Label9->Caption.c_str());
char bianhao[20];
strcpy(bianhao,Edit5->Text.c_str());
char filename[20];
strcpy(filename,Edit6->Text.c_str());
int rowcount;
rowcount=StringGrid1->RowCount;
if(SaveDialog1->Execute())
{
if(FileExists(SaveDialog1->FileName))
{
fnsplit(SaveDialog1->FileName.c_str(),0,0,szFileName,0);
strcat(szFileName,"r.BAK");
RenameFile(SaveDialog1->FileName,szFileName);
}
iFileHandle=FileCreate(SaveDialog1->FileName);
FileWrite(iFileHandle,filehead,10);
FileWrite(iFileHandle,apart,50);
FileWrite(iFileHandle,operater,10);
FileWrite(iFileHandle,pihao,50);
FileWrite(iFileHandle,samplename,50);
FileWrite(iFileHandle,date,16);
FileWrite(iFileHandle,time,10);
FileWrite(iFileHandle,bianhao,20);
FileWrite(iFileHandle,filename,20);
FileWrite(iFileHandle,&rowcount,4);
//先保存数据
for(int i=0;i<rowcount-2;i++)
{
Dpoint[i].WaveLength= StrToFloat(StringGrid1->Cells[1][i+1]);
Dpoint[i].abs= StrToFloat(StringGrid1->Cells[2][i+1]);
Dpoint[i].tran= StrToFloat(StringGrid1->Cells[3][i+1]);
}
for(int i=0;i<rowcount-2;i++) //按数组顺序写入
{
FileWrite(iFileHandle,&Dpoint[i].WaveLength,4);
FileWrite(iFileHandle,&Dpoint[i].abs,4);
FileWrite(iFileHandle,&Dpoint[i].tran,4);
}
FileClose(iFileHandle);
bModify=false;
}
}
//---------------------------------------------------------------------------
void __fastcall TfmDpoint::Button6Click(TObject *Sender)
{
bstop=true;
if(Button7->Caption=="检索中")
{
while(bRun)
{
bstop=true;
Application->ProcessMessages();
}
Button7->Caption="定点检索";
MenuEnable();
Button4->Enabled = false;
return;
}
MenuEnable();
if(bModify)
{
switch(Application->MessageBox("报告已经修改,还未保存,是否保存?","提示",MB_YESNOCANCEL))
{
case 6:{
Button2Click(Sender);
break;
}
case 7:{
fmDpoint->Close();
}
}
// case 2:break;
}
else
fmDpoint->Close();
}
//---------------------------------------------------------------------------
void __fastcall TfmDpoint::FormCreate(TObject *Sender)
{
for(int i=0;i<100;i++)
{
Dpoint[i].WaveLength=0;
Dpoint[i].abs=0;
Dpoint[i].tran=0;
}
Thread1=NULL;
bstop=false;
bWaveRight=false;
bKey=false;
StringGrid1->DefaultColWidth=(fmDpoint->Width-15)/4;
//StringGrid1->Cells[1][StringGrid1->RowCount-1]="200";
}
//---------------------------------------------------------------------------
void __fastcall TfmDpoint::Button3Click(TObject *Sender)
{
int iFileHandle;
int rowcount;
char sfilehead[10];
strcpy(sfilehead,"wfz26-uvr");
char dfilehead[10];
char szFileName[MAXFILE+4];
char apart[50];
char pihao[50];
char samplename[50];
char date[16];
char operater[10];
char time[10];
char bianhao[20];
char filename[20];
char temp[10];
if(OpenDialog1->Execute())
{
for(int i=0;i<100;i++) //首先删除表格内所有数据
{
Dpoint[i].WaveLength=0;
Dpoint[i].abs=0;
Dpoint[i].tran=0;
}
for(int i=1;i<StringGrid1->RowCount;i++)
for(int j=0;j<4;j++)
StringGrid1->Cells[j][i]="";
//StringGrid1->RowCount=2;
// StringGrid1->Cells[0][1]=1; //首先删除表格内所有数据
iFileHandle=FileOpen(OpenDialog1->FileName,fmOpenRead);
FileRead(iFileHandle,dfilehead,10);
if(strcmp(dfilehead,sfilehead)==0)
{
FileRead(iFileHandle,apart,50);
FileRead(iFileHandle,operater,10);
FileRead(iFileHandle,pihao,50);
FileRead(iFileHandle,samplename,50);
FileRead(iFileHandle,date,16);
FileRead(iFileHandle,time,10);
FileRead(iFileHandle,bianhao,20);
FileRead(iFileHandle,filename,20);
FileRead(iFileHandle,&rowcount,4);
for(int i=0;i<rowcount-2;i++)
{
FileRead(iFileHandle,&Dpoint[i].WaveLength,4);
FileRead(iFileHandle,&Dpoint[i].abs,4);
FileRead(iFileHandle,&Dpoint[i].tran,4);
}
FileClose(iFileHandle);
//strcpy(Edit1->Text.c_str(),apart);
Edit1->Text=apart;
Edit2->Text=pihao;
Edit4->Text=operater;
Edit3->Text=samplename;
Label6->Caption=date;
Label9->Caption=time;
Edit5->Text=bianhao;
Edit6->Text=filename;
StringGrid1->RowCount=rowcount;
for(int i=1;i<rowcount-1;i++)
{
StringGrid1->Cells[0][i]=i;
StringGrid1->Cells[1][i]=Dpoint[i-1].WaveLength;
sprintf(temp,"%1.4f",Dpoint[i-1].abs);
StringGrid1->Cells[2][i]=temp;
sprintf(temp,"%3.2f",Dpoint[i-1].tran);
StringGrid1->Cells[3][i]=temp;
}
// StringGrid1->Cells[0][StringGrid1->RowCount-1]=StringGrid1->RowCount-1;
//ShowMessage("就是他");
bModify=false;
}
}
else
{
ShowMessage("不是定点报告");
}
}
//---------------------------------------------------------------------------
void TfmDpoint::init()
{
Edit1->Clear();
Edit2->Clear();
Edit4->Clear();
SYSTEMTIME time;
GetLocalTime(&time);
Str=IntToStr(time.wYear); Str+="-";
Str+=IntToStr(time.wMonth); Str+="-";
Str+=IntToStr(time.wDay); Str+=" ";
Label6->Caption=Str;
Str="";
Str+=IntToStr(time.wHour); Str+=":";
Str+=IntToStr(time.wMinute);// Str+=":";
//Str+=IntToStr(Form1->ptc.dattim[6]);
Label9->Caption=Str;
Str="";
bModify=false;
//Label4->Caption=sizeof(Str);
for(int i=0;i<100;i++)
{
Dpoint[i].WaveLength=0;
Dpoint[i].abs=0;
Dpoint[i].tran=0;
}
for(int i=1;i<StringGrid1->RowCount;i++)
for(int j=0;j<4;j++)
StringGrid1->Cells[j][i]="";
StringGrid1->RowCount=2;
StringGrid1->Cells[0][1]=1;
/* for(int i=0;i<100;i++)
{
Dpoint[i].WaveLength=NULL;
Dpoint[i].abs=NULL;
Dpoint[i].tran=NULL;
}
StringGrid1->RowCount=2;
for(int i=1;i<StringGrid1->RowCount;i++)
for(int j=1;j<5;j++)
StringGrid1->Cells[j][i]=""; */
}
//---------------------------------------------------------------------------
void __fastcall TfmDpoint::Button4Click(TObject *Sender)
{
if(StringGrid1->Cells[1][StringGrid1->RowCount-1]!="")
if(wn!=StrToInt(StringGrid1->Cells[1][StringGrid1->RowCount-1])*Form1->wnd0)
{
bWaveRight=false;
Button7Click(Sender);
bWaveRight=true;
if(bWaveRight)
{
if(StringGrid1->Cells[1][StringGrid1->RowCount-1]!="")
{
char temp[10];
float tempdata;
tempdata=Form1->pp2*Form1->tas(2)*Form1->tbb();
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -