📄 main.cpp
字号:
default: StaticText30->Caption="其他串口";break;}
StaticText32->Caption=IntToStr(TableP->RecordCount)+" 台";
StaticText33->Caption="已有的设备数据记录:"+IntToStr(TableD->RecordCount)+" 条";
StaticText34->Caption="其中告警记录:"+IntToStr(CountOfAlm)+" 条";
if(CountOfAlm!=0)
{if(shape1==0) {shape1=1;StaticText34->Visible=true;StaticText34->Font->Color=clRed;}
else {shape1=0;StaticText34->Visible=false;}
}
else {StaticText34->Visible=true; StaticText34->Font->Color=clWindowText;
//StaticText34->Brush->Color=clWindowText;
}
}
//---------------------------------------------------------------------------
void __fastcall TFormMain::BitBtn13Click(TObject *Sender)
{ //Open Serial Port Button
int comnum;
if (Comm1->PortOpen)
{ShowMessage("串口已打开!要打开其他串口请先关闭当前串口!");
return;
}
comnum=ComboBox1->ItemIndex;
switch(comnum){
case 0: Comm1->CommPort=pnCOM1;break;
case 1: Comm1->CommPort=pnCOM2;break;
case 2: Comm1->CommPort=pnCOM3;break;
case 3: Comm1->CommPort=pnCOM4;break;
case 4: Comm1->CommPort=pnCOM5;break;
default: Comm1->CommPort=pnCOM1;break;}
Comm1->PortOpen=true;
}
//---------------------------------------------------------------------------
void __fastcall TFormMain::BitBtn14Click(TObject *Sender)
{ //Close Serial Port Button
if(Comm1->PortOpen) Comm1->PortOpen=false;
}
//---------------------------------------------------------------------------
void __fastcall TFormMain::BitBtn22Click(TObject *Sender)
{ //Clear button
Edit4->Clear();
Memo1->Clear();
}
//---------------------------------------------------------------------------
void __fastcall TFormMain::BitBtn23Click(TObject *Sender)
{ //Clear button
Edit3->Clear();
Memo2->Clear();
}
//---------------------------------------------------------------------------
void __fastcall TFormMain::FormMainCreate(TObject *Sender)
{ //FormMain Create Event
String path;
path=GetCurrentDir();
TableD->TableName=path+"\\"+"shebeidata";
TableD->Active=true;
TableP->TableName=path+"\\"+"shebei";
TableP->Active=true;
TablePS->TableName=path+"\\"+"pass";
TablePS->Active=true;
//Timer7->Enabled=true;
FormMain->TimerComState->Enabled=true;
FormMain->Timer4->Enabled=false;
FormMain->TimerState->Enabled=true;
FormMain->TimerShebeicheck->Enabled=true;
TableP->First();
Edit2->Text=TableP->FieldByName("Addr")->AsString;
Edit27->Text=TableP->FieldByName("LocNum")->AsString;
Edit28->Text=TableP->FieldByName("LocName")->AsString;
DateTimePicker1->Date=Now();
DateTimePicker4->Date=Now();
DateTimePicker3->Time=Now();
if (!Comm1->PortOpen) Comm1->PortOpen=true;
else {ShowMessage("默认串口已经被其他程序打开,请选择其他串口!");}
StatusBar1->Panels->Items[3]->Text="手动操作";
StatusBar1->Panels->Items[0]->Text=Now();
ActionStop->Enabled=false;
PageControl1->ActivePageIndex=0;
//Next is TreeView create from the Table base
StaticText32->Caption=IntToStr(TableP->RecordCount)+" 台";
StaticText33->Caption="已有的设备数据记录:"+IntToStr(TableD->RecordCount)+" 条";
TableD->First();
for(int i=0;i<TableD->RecordCount;i++)
{if(TableD->FieldByName("IsAlm")->AsBoolean) CountOfAlm++;
TableD->Next();
}
StaticText34->Caption="(其中告警记录:"+IntToStr(CountOfAlm)+" 条)";
createTree();
}
//---------------------------------------------------------------------------
void __fastcall TFormMain::TimerStateTimer(TObject *Sender)
{ //StatusBar real time display
StatusBar1->Panels->Items[0]->Text=Now().DateTimeString();
}
//---------------------------------------------------------------------------
void __fastcall TFormMain::BitBtn3Click(TObject *Sender)
{ //Edit DBMemoP Attribute
// BitBtn4->Enabled=true;
// DBMemoP->Enabled=true;
// DBMemoP->ReadOnly=false;
// DBMemoP->SetFocus();
TablePS->First();
if(TablePS->RecordCount==0||TablePS->FieldByName("PassWord")->AsString=="") goto L522;
if(PasswordDlg->ShowModal()==1) ;
else return;
if(Edit16->Text=="0") return;
else Edit16->Text="0";
L522:;
Form5->Edit1->Text=TableP->FieldByName("Name")->AsString;
Form5->Edit4->Text=TableP->FieldByName("Name")->AsString;
Form5->ShowModal();
}
//---------------------------------------------------------------------------
void __fastcall TFormMain::BitBtn4Click(TObject *Sender)
{ //Confirm Edit DBMemoP Attribute
TableP->Edit();
TableP->FieldByName("Memo")->AsString=DBMemoP->Text;
TableP->Post();
DBMemoP->ReadOnly=true;
// DBMemoP->Enabled=false;
BitBtn4->Enabled=false;
}
//---------------------------------------------------------------------------
void __fastcall TFormMain::TimerShebeicheckTimer(TObject *Sender)
{
if(TableP->RecordCount==0)
{ActionRun->Enabled=false;BitBtn3->Enabled=false;BitBtn35->Enabled=false;
ActionDel->Enabled=false;
ActionStop->Enabled=false;}
else
{if(autoread==1) { BitBtn3->Enabled=false;
BitBtn35->Enabled=false;
ActionDel->Enabled=false;}
else
{BitBtn3->Enabled=true;
BitBtn35->Enabled=true;
ActionDel->Enabled=true;}
if (autoread!=1) //autoread is RUN state flag
ActionRun->Enabled=true;
}
}
//---------------------------------------------------------------------------
void __fastcall TFormMain::BitBtn9Click(TObject *Sender)
{
//Look up records according to address
if(Edit1->Text=="") {ShowMessage("请输入地址内容"); return;}
String sign;
String addrflt;
sign="'";
addrflt="Addr="+sign+Edit1->Text+sign;
TableD->Filter=addrflt;
TableD->Filtered=true;
TableD->Refresh();
if(TableD->RecordCount==0) ShowMessage("未找到符合条件的记录!");
}
//---------------------------------------------------------------------------
void __fastcall TFormMain::BitBtn2Click(TObject *Sender)
{
TablePS->First();
if(TablePS->RecordCount==0||TablePS->FieldByName("PassWord")->AsString=="") goto L578;
if(PasswordDlg->ShowModal()==1) ;
else return;
if(Edit16->Text=="0") return;
else Edit16->Text="0";
L578:;
//Delete shebei Record
String Str01,Str02,Str03,Str04,Str05,Str06,Str07;
Str02="确定要从本系统中删除设备 ";
Str03=" 吗?";
Str01=Str02+TableP->FieldByName("Name")->AsString+Str03;
char *Char01;
Char01=Str01.c_str();
FormMain->Enabled=false;
// String Stra=MessageBox(0,"确定要从本系统中删除该设备吗?","系统提示",MB_OKCANCEL);
String Stra=MessageBox(0,Char01,"系统提示",MB_OKCANCEL);
if(Stra==IDOK)
{FormMain->Enabled=true;
TableP->Edit();
TableP->Delete();
TableP->First();
createTree();}
else {TableP->First(); FormMain->Enabled=true; return;}
}
//---------------------------------------------------------------------------
void __fastcall TFormMain::FormMainCloseQuery(TObject *Sender,
bool &CanClose)
{ if(autoread==1) {ShowMessage("请先停止自动运行"); CanClose=false; return; }
FormMain->Enabled=false;
String Stra=MessageBox(0,"确定要退出本系统吗?","系统提示",MB_OKCANCEL);
if(Stra==IDOK) {
// CanClose=false;
// rootnode=TreeView1->Items->GetFirstNode();
// Memo3->Text=rootnode->Text;
// Memo3->Lines->SaveToFile(rootname);
// CanClose=true;
exit(0); }
else {CanClose=false; FormMain->Enabled=true; return;}
}
//---------------------------------------------------------------------------
void __fastcall TFormMain::BitBtn11Click(TObject *Sender)
{
//Lookup record according to time
String DTfilt;
String hdateStr="Date>";
String ldateStr="Date<";
String htimeStr="Time>";
String ltimeStr="Time<";
String And=" and ";
TDateTime startdate,enddate;
TDateTime starttime,endtime;
startdate=DateTimePicker1->Date;
starttime=DateTimePicker3->Time;
enddate=DateTimePicker2->Date;
endtime=DateTimePicker4->Time;
DTfilt="Date >="+DateToStr(DateTimePicker1->Date)+" and Date<="+DateToStr(DateTimePicker4->Date)
+" and Time>="+QuotedStr(TimeToStr(DateTimePicker2->Time))+" and Time<="+QuotedStr(TimeToStr(DateTimePicker3->Time));
TableD->Filter=DTfilt;
TableD->Filtered=true;
}
//---------------------------------------------------------------------------
void __fastcall TFormMain::BitBtn7Click(TObject *Sender)
{ //Delete all shebeidata`s records
TablePS->First();
if(TablePS->RecordCount==0||TablePS->FieldByName("PassWord")->AsString=="") goto L666;
if(PasswordDlg->ShowModal()==1) ;
else return;
if(Edit16->Text=="0") return;
else Edit16->Text="0";
L666:;
if(TableD->RecordCount==0) {ShowMessage("告警记录为空!");return;}
if (MessageBox(0,"确定删除所有记录吗?","删除提示",MB_OKCANCEL)==IDCANCEL) return;
else if(MessageBox(0,"删除的数据将不可恢复,确认吗?","删除提示",MB_OKCANCEL)==IDCANCEL) return;
TableD->First();
TableD->Edit();
Lable:;
TableD->Delete();
TableD->Next();
TableD->Refresh();
if(TableD->RecordCount==0){CountOfAlm=0; ShowMessage("数据删除完毕!!");return; }
else goto Lable;
}
//---------------------------------------------------------------------------
void __fastcall TFormMain::ActionCloseExecute(TObject *Sender)
{if(autoread==1) {ShowMessage("请先停止自动运行"); return; }
FormMain->Enabled=false;
String Stra=MessageBox(0,"确定要退出本系统吗?","系统提示",MB_OKCANCEL);
if(Stra==IDOK){if(!Comm1->PortOpen) Comm1->PortOpen=false;
// rootnode=TreeView1->Items->GetFirstNode();
// Memo3->Text=rootnode->Text;
// Memo3->Lines->SaveToFile(rootname);
exit(0);
}
else {FormMain->Enabled=true; return;}
}
//---------------------------------------------------------------------------
void __fastcall TFormMain::BitBtn6Click(TObject *Sender)
{ //Delete current record of shebeidata.db
TablePS->First();
if(TablePS->RecordCount==0||TablePS->FieldByName("PassWord")->AsString=="") goto L700;
if(PasswordDlg->ShowModal()==1) ;
else return;
if(Edit16->Text=="0") return;
else Edit16->Text="0";
L700:;
if(MessageBox(0,"确定要删除当前记录吗?","删除提示",MB_OKCANCEL)==IDOK) ;
else return;
if(TableD->RecordCount==0){ //delete alarm records
ShowMessage("无告警记录可删除!");return;
}
TableD->Edit();
TableD->Delete();
}
//---------------------------------------------------------------------------
void __fastcall TFormMain::BitBtn1Click(TObject *Sender)
{
TablePS->First();
if(TablePS->RecordCount==0||TablePS->FieldByName("PassWord")->AsString=="") goto L694;
if(PasswordDlg->ShowModal()==1) ;
else return;
if(Edit16->Text=="0") return;
else Edit16->Text="0";
L694:;
Form2->Show();
}
//---------------------------------------------------------------------------
void __fastcall TFormMain::ActionRunExecute(TObject *Sender)
{ //Action Run
if(!Comm1->PortOpen) {ShowMessage("串口未打开!!"); return;}
A1->Enabled=false;
TableD->Filtered=false;
TableP->Filtered=false;
BitBtn24->Enabled=false;
BitBtn25->Enabled=false;
BitBtn26->Enabled=false;
BitBtn27->Enabled=false;
BitBtn28->Enabled=false;
BitBtn29->Enabled=false;
BitBtn30->Enabled=false;
BitBtn31->Enabled=false;
BitBtn32->Enabled=false;
BitBtn33->Enabled=false;
BitBtn16->Enabled=false; // manual run button
BitBtn13->Enabled=false;
BitBtn14->Enabled=false;
BitBtn20->Enabled=false;
BitBtn1->Enabled=false;
BitBtn2->Enabled=false;
BitBtn3->Enabled=false;
BitBtn5->Enabled=false;
BitBtn6->Enabled=false;
BitBtn7->Enabled=false;
BitBtn9->Enabled=false;
BitBtn11->Enabled=false;
S3->Enabled=false;
BitBtn39->Enabled=false;
BitBtn36->Enabled=false;
BitBtn38->Enabled=false;
ActionAdd->Enabled=false;
ActionDel->Enabled=false;
ActionComm->Enabled=false;
ActionADSet->Enabled=false;
ToolButton3->Enabled=false;
autoread=1;stopedread=0;
TreeView1->Enabled=false;
PageControl1->ActivePageIndex=0;
ActionRun->Enabled=false;
ActionStop->Enabled=true;
StatusBar1->Panels->Items[3]->Text="自动监控";
if(RadioButton1->Checked)
{degree=0;
if(Edit26->Text.ToInt()>65535) Edit26->Text=65535;
rundegree=Edit26->Text.ToInt(); } //Autorun degree reset
else if(RadioButton2->Checked)
{
if(Edit23->Text.ToInt()>17) Edit23->Text=17;
if(Edit24->Text.ToInt()>59) Edit24->Text=59;
if(Edit25->Text.ToInt()>59) Edit25->Text=59;
runtime=(Edit23->Text.ToInt())*3600+(Edit24->Text.ToInt())*60+Edit25->Text.ToInt();
timerstoptime=0;
TimerStop->Enabled=true;
}
tableturn=0; //express current tableP recorder point
TimerRun->Interval=(Edit6->Text.ToInt())*1000;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -