📄 unit20.cpp
字号:
{
Timer1->Enabled = false;
//DisableMenuItems();
m_WntoGo=InputBoChang->BoChang; // fBoChangValue 输入的波长值
if(Thread1!=NULL) DeleteThread1();
// CreatThread1();
// Thread1->SetFun((ExecFun) To_GotoWn);
m_bStop = false; // 按下Stop 按纽
DisableMenuItems();
Thread1->Resume();
}
}
//---------------------------------------------------------------------------
void TFormXGD::CreatThread1(void)
{// 创建线程
if(Thread1==NULL)
{
Thread1=new ThreadE(true);
Thread1->Priority=tpNormal;
}
}
//---------------------------------------------------------------------------
void TFormXGD::DeleteThread1(void)
{// 删除线程
if(Thread1!=NULL)
{
Thread1->Terminate();
Thread1->WaitFor();
delete Thread1;
Thread1=NULL;
}
}
//---------------------------------------------------------------------------
void __fastcall TFormXGD::btnStopClick(TObject *Sender)
{
/*
TSize sz;
sz = StringGrid1->Canvas->TextExtent("2004-7-19 17:20:23");
StringGrid1->ColWidths[8] = sz.cx + 1;
*/
m_bStop = true;
}
//---------------------------------------------------------------------------
void TFormXGD::EnableMenuItems(void)
{
btnGotoWn->Enabled = true;
//btnCeLiang->Enabled = true;
btnReturn->Enabled = true;
}
//---------------------------------------------------------------------------
void TFormXGD::DisableMenuItems(void)
{
btnGotoWn->Enabled = false;
//btnCeLiang->Enabled = false;
btnReturn->Enabled = false;
}
//---------------------------------------------------------------------------
void __fastcall TFormXGD::FormCloseQuery(TObject *Sender, bool &CanClose)
{
int bt;
if(CheckAmended())
{
bt = Application->MessageBox("测量内容已经改变,是否保存?","提示",MB_YESNO|MB_ICONWARNING);
if(bt == IDYES)
{
bt = DoSave();
if(bt != 1)
{
CanClose = false;
return ;
}
}
}
//CanClose = m_CanCloseed;
CanClose = true;
InitPara();
}
//---------------------------------------------------------------------------
void __fastcall TFormXGD::StringGrid1DrawCell(TObject *Sender, int ACol,
int ARow, TRect &Rect, TGridDrawState State)
{
TStringGrid *sgrid;
TRect rectt;
int i;
sgrid = (TStringGrid *)Sender;
if(ARow < 0 || ACol < 0) return ;
if(ARow == 0)
{
sgrid->Canvas->Brush->Color = sgrid->FixedColor;
sgrid->Canvas->FillRect(Rect);
DrawText(sgrid->Canvas->Handle,sgrid->Cells[ACol][ARow].c_str(),-1,(RECT*)&Rect,
DT_SINGLELINE | DT_VCENTER | DT_CENTER);
//sgrid->Canvas->TextOut(Rect.Left+(Rect.Width()-Rect.Left-sgrid->Cells[ACol][ARow].Trim().Length())/2,Rect.Top,sgrid->Cells[ACol][ARow].Trim());
}
else
{
if(!m_bStdCompl)
{
if(ACol == 0
|| ACol == 5
|| ACol == 6
|| ACol == 7
|| ACol ==8
)
{
//不可输入的颜色
sgrid->Canvas->Brush->Color = clOlive;
}
else
{
sgrid->Canvas->Brush->Color = clWhite;
if( ACol == 3
|| ACol == 4
)
{
sgrid->Canvas->Brush->Color = (TColor)0xEFE3F7;
}
}
}
else
{
if((ARow-1) < m_StdParaCount)
{
sgrid->Canvas->Brush->Color = (TColor)0x0075baff;
}
else
{
if(ACol == 0
|| ACol ==6
|| ACol ==7
|| ACol ==8
)
{
//不可输入的颜色
sgrid->Canvas->Brush->Color = clOlive;
}
else
{
//sgrid->Canvas->Brush->Color = clWhite;
if( ACol == 3
|| ACol == 4
)
{
sgrid->Canvas->Brush->Color = (TColor)0xEFE3F7;
}
}
}
}
sgrid->Canvas->FillRect(Rect);
DrawText(sgrid->Canvas->Handle,sgrid->Cells[ACol][ARow].c_str(),-1,(RECT*)&Rect,
DT_SINGLELINE | DT_VCENTER | DT_CENTER);
}
if(ARow == m_SelectRow && m_SelectRow > 0)
{
sgrid->Canvas->Brush->Color = clBlue;
for(i = 0; i < sgrid->ColCount; i++)
{
rectt = sgrid->CellRect(i, ARow);
sgrid->Canvas->FillRect(rectt);
DrawText(sgrid->Canvas->Handle,sgrid->Cells[i][ARow].c_str(),-1,(RECT*)&rectt,
DT_SINGLELINE | DT_VCENTER | DT_CENTER);
}
}
}
//---------------------------------------------------------------------------
void TFormXGD::UpdatePara(void)
{
int i;
char gs[80];
for(i = 0; i < m_AllParaCount; i++)
{
if(i < m_StdParaCount)
{
StringGrid1->Cells[0][i+1]= "√";
}
else
{
if(m_bStdCompl)
StringGrid1->Cells[0][i+1]= i - m_StdParaCount + 1;
else
StringGrid1->Cells[0][i+1]= i + 1;
}
StringGrid1->Cells[1][i+1] = m_pXGDParas[i].Name;
StringGrid1->Cells[2][i+1] = m_pXGDParas[i].Num;
//sprintf(gs, "%1.3f", );
FNFloatToStr(gs, 1, m_XGDJD, m_pXGDParas[i].Abs);
StringGrid1->Cells[3][i+1] = gs;
//sprintf(gs, "%1.3f", );
FNFloatToStr(gs, 1, m_NDJD, m_pXGDParas[i].C1);
StringGrid1->Cells[4][i+1] = gs;
//sprintf(gs, "%1.3f", );
FNFloatToStr(gs, 1, m_NDJD, m_pXGDParas[i].C);
StringGrid1->Cells[5][i+1] = gs;
//sprintf(gs, "%1.3f", );
FNFloatToStr(gs, 1, m_NDJD, m_pXGDParas[i].C1 - m_pXGDParas[i].C);
StringGrid1->Cells[6][i+1] = gs;
sprintf(gs, "%d", m_pXGDParas[i].TasCount);
StringGrid1->Cells[7][i+1] = gs;
StringGrid1->Cells[8][i+1] = DateTimeToStr(SystemTimeToDateTime(m_pXGDParas[i].Time));
StringGrid1->Cells[9][i+1] = m_pXGDParas[i].BeiZhu;
}
}
//---------------------------------------------------------------------------
void TFormXGD::GetPara(void)
{
int i;
for(i = 0; i < m_AllParaCount; i++)
{
strcpy(m_pXGDParas[i].Name, StringGrid1->Cells[1][i+1].c_str());
strcpy(m_pXGDParas[i].Num, StringGrid1->Cells[2][i+1].c_str());
m_pXGDParas[i].Abs = StringGrid1->Cells[3][i+1].ToDouble();
m_pXGDParas[i].C1 = StringGrid1->Cells[4][i+1].ToDouble();
m_pXGDParas[i].C = StringGrid1->Cells[5][i+1].ToDouble();
m_pXGDParas[i].TasCount = StringGrid1->Cells[7][i+1].ToDouble();
DateTimeToSystemTime(StrToDateTime(StringGrid1->Cells[8][i+1]), m_pXGDParas[i].Time);
strcpy(m_pXGDParas[i].BeiZhu, StringGrid1->Cells[9][i+1].c_str());
}
}
//---------------------------------------------------------------------------
void __fastcall TFormXGD::StringGrid1SelectCell(TObject *Sender, int ACol,
int ARow, bool &CanSelect)
{
TStringGrid *sgrid;
sgrid = (TStringGrid *)Sender;
if(ARow == 0)
{
CanSelect = false;
return;
}
if(ACol == 0)
{
CanSelect = false;
//sgrid->Options >> goRowSelect;
//sgrid->Options << goEditing;
//sgrid->Options << goAlwaysShowEditor;
if(!m_bStdCompl || ARow > m_StdParaCount)
{
CanSelect = true;
sgrid->Options >> goEditing;
sgrid->Options >> goAlwaysShowEditor;
sgrid->Options << goRowSelect;
btnDel->Enabled = true;
m_SelectRow = ARow;
}
else
{
//btnDel->Enabled = false;
}
if(m_bStdCompl && ARow > m_StdParaCount)
{
CanSelect = true;
btnCeLiang->Enabled = true;
m_SelectRow = ARow;
}
else
{
btnCeLiang->Enabled = false;
}
return;
}
m_SelectRow = -1;
sgrid->Options >> goRowSelect;
sgrid->Options << goEditing;
sgrid->Options << goAlwaysShowEditor;
btnDel->Enabled = false;
btnCeLiang->Enabled = false;
CanSelect = true;
if(!m_bStdCompl) //未建立标准样品曲线
{
if(ACol == 0
|| ACol == 5
|| ACol == 6
|| ACol == 7
|| ACol == 8
)
{
CanSelect = false;
}
}
else
{
if(ARow <= m_StdParaCount) CanSelect = false;
if(ACol == 0
|| ACol == 3
|| ACol == 4
|| ACol ==6
|| ACol ==7
|| ACol ==8
)
{
CanSelect = false;
}
}
if(CanSelect == false && sgrid->Col == 0)
{
//sgrid->Col = 2;
SelectGridCell(sgrid, 2, sgrid->Row);
}
}
//---------------------------------------------------------------------------
void __fastcall TFormXGD::StringGrid1SetEditText(TObject *Sender, int ACol,
int ARow, const AnsiString Value)
{
TStringGrid *sgrid;
AnsiString str;
float t;
char gs[80];
int slen, clen;
sgrid = (TStringGrid *)Sender;
if(ARow <= 0) return;
if(ACol != 0)
{
m_bAmend = true;
}
//限制各项输入长度
clen = sgrid->Cells[ACol][ARow].Length();
if(ACol == 1)
{
slen = sizeof(m_pXGDParas[ARow - 1].Name);
str = Value;
if(clen >= slen)
{
str.Delete(slen, clen - slen + 1);
sgrid->Cells[ACol][ARow] = str;
}
}
if(ACol == 2)
{
slen = sizeof(m_pXGDParas[ARow - 1].Num);
str = Value;
if(clen >= slen)
{
str.Delete(slen, clen - slen + 1);
sgrid->Cells[ACol][ARow] = str;
}
}
if(ACol == 9)
{
slen = sizeof(m_pXGDParas[ARow - 1].BeiZhu);
str = Value;
if(clen >= slen)
{
str.Delete(slen, clen - slen + 1);
sgrid->Cells[ACol][ARow] = str;
}
}
if(ACol == 3 || ACol == 4 || ACol == 5)
{
str = IsNumber(Value);
if(str != Value)
{
sgrid->Cells[ACol][ARow] = str;
}
if(ACol == 3)
{
if(IsFloat(sgrid->Cells[3][ARow]))
{
//sprintf(gs, "%1.3f", );
FNFloatToStr(gs, 1, m_XGDJD, m_pXGDParas[ARow - 1].Abs);
if(str != gs)
{
//修改了吸光度则使采集次数为1
sgrid->Cells[7][ARow] = 1;
}
}
}
if(IsFloat(sgrid->Cells[3][ARow]) && IsFloat(sgrid->Cells[4][ARow]))
{
m_pXGDParas[ARow - 1].Abs = sgrid->Cells[3][ARow].ToDouble();
m_pXGDParas[ARow - 1].C1 = sgrid->Cells[4][ARow].ToDouble();
m_pXGDParas[ARow - 1].bValid = true;
}
else
{
m_pXGDParas[ARow - 1].bValid = false;
}
}
if(ACol == 4 || ACol == 5)
{
if(ACol == 4 && !m_bStdCompl)
{
sgrid->Cells[5][ARow] = sgrid->Cells[ACol][ARow];
}
if(IsFloat(sgrid->Cells[4][ARow]) && IsFloat(sgrid->Cells[5][ARow]))
{
t = sgrid->Cells[4][ARow].ToDouble() - sgrid->Cells[5][ARow].ToDouble();
//sprintf(gs, "%1.3f", t);
FNFloatToStr(gs, 1, m_NDJD, t);
sgrid->Cells[6][ARow] = gs;
}
}
btnAddItem->Enabled = CheckForNewItem();
if(!m_bStdCompl)
{
if(btnAddItem->Enabled && sgrid->RowCount >= 3)
{
btnBuildStd->Enabled = true;
}
else
{
btnBuildStd->Enabled = false;
}
}
else
{
btnBuildStd->Enabled = true;
}
/*
if(btnAddItem->Enabled && sgrid->RowCount >= 3 && !m_bStdCompl)
btnBuildStd->Enabled = true;
else
btnBuildStd->Enabled = false;
*/
sgrid->Options >> goEditing;
sgrid->Options >> goAlwaysShowEditor;
sgrid->Options << goEditing;
sgrid->Options << goAlwaysShowEditor;
/*
CanSelect = true;
if(!m_bStdCompl) //未建立标准样品曲线
{
if(ACol == 0
|| ACol == 6
|| ACol == 8
)
{
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -