📄 setu.~cpp
字号:
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "SetU.h"
#include "MainU.h"
#include <dialogs.hpp>
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma link "CSPIN"
#pragma link "Button3D"
#pragma resource "*.dfm"
TSetFrm *SetFrm;
//---------------------------------------------------------------------------
__fastcall TSetFrm::TSetFrm(TComponent* Owner)
: TForm(Owner)
{
edt[0]=Edit1;
edt[1]=Edit2;
edt[2]=Edit3;
edt[3]=Edit4;
edt[4]=Edit5;
edt[5]=Edit6;
edt[6]=Edit7;
edt[7]=Edit8;
edt[8]=Edit9;
edt[9]=Edit10;
edt[10]=Edit11;
edt[11]=Edit12;
edt[12]=Edit13;
edt[13]=Edit14;
edt[14]=Edit15;
edt[15]=Edit16;
edt[16]=Edit17;
edt[17]=Edit18;
edt[18]=Edit19;
edt[19]=Edit20;
edt[20]=Edit21;
edt[21]=Edit22;
edt[22]=Edit23;
edt[23]=Edit24;
edt[24]=Edit25;
edt[25]=Edit26;
edt[26]=Edit27;
edt[27]=Edit28;
edt[28]=Edit29;
edt[29]=Edit30;
edt[30]=Edit31;
edt[31]=Edit32;
jixianzhi[0]=Edit34;
jixianzhi[1]=Edit35;
jixianzhi[2]=Edit36;
jixianzhi[3]=Edit37;
jixianzhi[4]=Edit38;
jixianzhi[5]=Edit39;
jixianzhi[6]=Edit40;
jixianzhi[7]=Edit41;
jixianzhi[8]=Edit42;
jixianzhi[9]=Edit43;
jixianzhi[10]=Edit44;
jixianzhi[11]=Edit45;
jixianzhi[12]=Edit46;
jixianzhi[13]=Edit47;
jixianzhi[14]=Edit48;
jixianzhi[15]=Edit49;
danwei[0]=ComboBox1;
danwei[1]=ComboBox2;
danwei[2]=ComboBox3;
danwei[3]=ComboBox4;
danwei[4]=ComboBox5;
danwei[5]=ComboBox6;
danwei[6]=ComboBox7;
danwei[7]=ComboBox8;
danwei[8]=ComboBox9;
danwei[9]=ComboBox10;
danwei[10]=ComboBox11;
danwei[11]=ComboBox12;
danwei[12]=ComboBox13;
danwei[13]=ComboBox14;
danwei[14]=ComboBox15;
danwei[15]=ComboBox16;
dianyafanwei[0]=ComboBox17;
dianyafanwei[1]=ComboBox18;
dianyafanwei[2]=ComboBox19;
dianyafanwei[3]=ComboBox20;
dianyafanwei[4]=ComboBox21;
dianyafanwei[5]=ComboBox22;
dianyafanwei[6]=ComboBox23;
dianyafanwei[7]=ComboBox24;
dianyafanwei[8]=ComboBox25;
dianyafanwei[9]=ComboBox26;
dianyafanwei[10]=ComboBox27;
dianyafanwei[11]=ComboBox28;
dianyafanwei[12]=ComboBox29;
dianyafanwei[13]=ComboBox30;
dianyafanwei[14]=ComboBox31;
dianyafanwei[15]=ComboBox32;
/*************初始化定义的数组,与相应Edit匹配,xp,11-11*****/
//将输入的输出值保存与自定义的数组Val_SetValPi中
Val_SetValPi[0]=Edt_SetVal_P1;
Val_SetValPi[1]=Edt_SetVal_P2;
Val_SetValPi[2]=Edt_SetVal_P3;
Val_SetValPi[3]=Edt_SetVal_P4;
Val_SetValPi[4]=Edt_SetVal_P5;
Val_SetValPi[5]=Edt_SetVal_P6;
Val_SetValPi[6]=Edt_SetVal_P7;
Val_SetValPi[7]=Edt_SetVal_P8;
Val_SetValPi[8]=Edt_SetVal_P9;
Val_SetValPi[9]=Edt_SetVal_P10;
Val_SetValPi[10]=Edt_SetVal_P11;
Val_SetValPi[11]=Edt_SetVal_P12;
Val_SetValPi[12]=Edt_SetVal_P13;
Val_SetValPi[13]=Edt_SetVal_P14;
Val_SetValPi[14]=Edt_SetVal_P15;
Val_SetValPi[15]=Edt_SetVal_P16;
//将输入的恢复值保存与自定义的数组Val_ReSetValPi中
Val_ReSetValPi[0]=Edt_RetSetVal_P1;
Val_ReSetValPi[1]=Edt_RetSetVal_P2;
Val_ReSetValPi[2]=Edt_RetSetVal_P3;
Val_ReSetValPi[3]=Edt_RetSetVal_P4;
Val_ReSetValPi[4]=Edt_RetSetVal_P5;
Val_ReSetValPi[5]=Edt_RetSetVal_P6;
Val_ReSetValPi[6]=Edt_RetSetVal_P7;
Val_ReSetValPi[7]=Edt_RetSetVal_P8;
Val_ReSetValPi[8]=Edt_RetSetVal_P9;
Val_ReSetValPi[9]=Edt_RetSetVal_P10;
Val_ReSetValPi[10]=Edt_RetSetVal_P11;
Val_ReSetValPi[11]=Edt_RetSetVal_P12;
Val_ReSetValPi[12]=Edt_RetSetVal_P13;
Val_ReSetValPi[13]=Edt_RetSetVal_P14;
Val_ReSetValPi[14]=Edt_RetSetVal_P15;
Val_ReSetValPi[15]=Edt_RetSetVal_P16;
shijian=MainFrm->Timer2->Interval;
/*********************************************************/
for(int i=0;i<16;i++)
{
edt[2*i]->Text=MainFrm->min[i];
edt[2*i+1]->Text=MainFrm->max[i];
jixianzhi[i]->Text=MainFrm->jixianzhi[i];
danwei[i]->Text=MainFrm->danwei[i]->Caption;
dianyafanwei[i]->ItemIndex=MainFrm->dianyafanwei[i];
/*********************初始化自定义的数组,xp,11-11*******/
Val_SetValPi[i]->Text=MainFrm->SetVal[i];
Val_ReSetValPi[i]->Text=MainFrm->ReSetVal[i];
/********************************************************/
}
Edit33->Value=shijian;
}
//---------------------------------------------------------------------------
void __fastcall TSetFrm::Button1Click(TObject *Sender)
{
/*********在设置完后判断设置数据是否有效,xp,11-11***************/
if(IsRightData(edt[32],Val_SetValPi[16],Val_ReSetValPi[16])==1)
{
if(MessageBox("请确保输入的输出值和恢复值在有效值(最大值和最小值)范围内","警告", MB_OKCANCEL+MB_ICONWARNING)==IDCANCEL)
//if(Application->MessageBox("当前正在采集数据,确实要退出吗?","提示",MB_OKCANCEL+MB_ICONWARNING)==IDOK)
{
Sleep(10);
Action=caNone;
}
else
{
return;
}
}
/***************************************************************/
for(int i=0;i<16;i++)
{ MainFrm->min[i]=edt[2*i]->Text;
MainFrm->max[i]=edt[2*i+1]->Text;
/*********保存输入的输出值和恢复值到制定的数组中,xp,11-11*******/
MainFrm->SetVal[i]=Val_SetValPi[i]->Text;
MainFrm->ReSetVal[i]=Val_ReSetValPi[i]->Text;
/****************************************************************/
MainFrm->jixianzhi[i]=jixianzhi[i]->Text;
MainFrm->danwei[i]->Caption=danwei[i]->Text+" ";
MainFrm->dianyafanwei[i]=dianyafanwei[i]->ItemIndex;
}
shijian=Edit33->Value;
MainFrm->Timer2->Interval=shijian;
//写入set
MainFrm->outfile.clear();
AnsiString FileName="set.dat";
MainFrm->outfile.open(FileName.c_str());
for(int i=0;i<16;i++)
{ MainFrm->outfile<<MainFrm->min[i].c_str()<<endl;
MainFrm->outfile<<MainFrm->max[i].c_str()<<endl;
/************保存输入的输出值和恢复值到指定的外部文件,xp,11-11*******/
MainFrm->outfile<<MainFrm->SetVal[i].c_str()<<endl;
MainFrm->outfile<<MainFrm->ReSetVal[i].c_str()<<endl;
/********************************************************************/
MainFrm->outfile<<MainFrm->jixianzhi[i].c_str()<<endl;
MainFrm->outfile<<MainFrm->danwei[i]->Caption.c_str()<<endl;
MainFrm->outfile<<MainFrm->dianyafanwei[i]<<endl;
}
unsigned int shijian;
shijian=MainFrm->Timer2->Interval;
MainFrm->outfile<<shijian<<endl;
this->Close();
}
//---------------------------------------------------------------------------
/*************************判断数据是否有效的函数,xp,11-11******************/
int __fastcall TSetFrm::IsRightData(TEdit *,TEdit *,TEdit *)
{
float Val_Set[16],Val_ReSet[16];
float Val_Min[16],Val_Max[16];
for(int i=0;i<16;i++)
{
Val_Min[i]=StrToFloat(edt[2*i]->Text);
Val_Max[i]=StrToFloat(edt[2*1+1]->Text);
Val_Set[i]=StrToFloat(Val_SetValPi[i]->Text);
Val_ReSet[i]=StrToFloat(Val_ReSetValPi[i]->Text);
//加判断语句判断输入值是否有效
if((Val_Set[i]<Val_Min[i]||Val_Set[i]>Val_Max[i])||
(Val_ReSet[i]<Val_Min[i]||Val_ReSet[i]>Val_Max[i]))
{
// Application->MessageBox("Please input right data","Waring",MB_OKCANCEL+MB_ICONWARNING)==IDOK;
// MessageDlg("Please input right data", mtInformation, TMsgDlgButtons() <<mbOK, 0);
return 1;
}
else
return 0;
}
}
//---------------------------------------------------------------------------
void __fastcall TSetFrm::btnCancelClick(TObject *Sender)
{
this->Close();
}
//---------------------------------------------------------------------------
void __fastcall TSetFrm::Button3D1Click(TObject *Sender)
{
Button1Click(Sender);
}
//---------------------------------------------------------------------------
void __fastcall TSetFrm::Button3D2Click(TObject *Sender)
{
btnCancelClick(Sender);
}
//---------------------------------------------------------------------------
void __fastcall TSetFrm::Button2Click(TObject *Sender)
{
/*************加入判读输出值和恢复值范围的判断语句,XP,11月10日***
float Val_Sma,Val_Lag;
Val_Sma=StrToFloat(Edit1->Text);
Val_Lag=StrToFloat(Edit2->Text); //获得前面设置的最小,最大值
float Val_SetVal,Val_ReSetVal;
Val_SetVal=StrToFloat(Edt_SetVal_P1->Text);
Val_ReSetVal=StrToFloat(Edt_RetSetVal_P1->Text); //取得输入的值
***************进行比较确定输入值是否有效**************
if((Val_Sma>Val_SetVal||Val_Lag<Val_SetVal)||
(Val_Sma>Val_ReSetVal||Val_Lag<Val_ReSetVal))
{
ShowMessage("Please input right data!");
}
else
{
//设定一个标称值,如果超过这个值则将报警 ,此处现将该值设为40
if(Val_SetVal>90&&Val_ReSetVal>88)
{
Beep(5000,5000);
}
//else if(Val_setVal>90&&Val_ReSetVal<88)
else
{
ShowMessage("reback good data!");
}
}
/********************************************************/
}
//---------------------------------------------------------------------------
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -