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

📄 unit2.cpp

📁 实现RS232数据采集处理,设置RS23传输参数,显示控制终端的数据.
💻 CPP
字号:
//---------------------------------------------------------------------------

#include <vcl.h>
#pragma hdrstop

#include "Unit2.h"
#include "main.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm2 *Form2;
int form2canclose=0;
/*
TTreeNode *rootnodeII,*rootnode2II,*sub1nodeII,*sub2nodeII;
String rootnameII="rootname.txt";

String sub1nodeTextII,sub2nodeTextII;
int locnumII;
int locnumArrII[256],locnumArr2II[256];
String locnameII;
String rootII;


String getlocnameII(int ln)  //according to LocNum return LocName function
{int lnm;
 String lna;
 //lnm=ln;
 Form2->Table1->First();
 for(int i=0;i<Form2->Table1->RecordCount;i++){
 if(Form2->Table1->FieldByName("LocNum")->AsString.ToInt()==ln)
   {lna=Form2->Table1->FieldByName("LocName")->AsString;break;}
 else Form2->Table1->Next(); }
 return lna;

}

//---------------------------------------------------------------------------

int getlocnumII(String lna)
{int locn;
 String Str1;
 Form2->Table1->First();
 for(int i=0;i<Form2->Table1->RecordCount;i++) //for start
    {Str1=Form2->Table1->FieldByName("LocName")->AsString;
     if(Str1==lna) //if start
     {locn=Form2->Table1->FieldByName("LocNum")->AsString.ToInt();
      return locn;
      } //if end
      Form2->Table1->Next();
     }//for end
 return 0;
}

//---------------------------------------------------------------------------
 int locationnumII;
void createsubnodeII()
{
  locationnumII=getlocnumII(sub1nodeII->Text);
  Form2->Table1->First();
  for(int i=0;i<Form2->Table1->RecordCount;i++)
    {if(Form2->Table1->FieldByName("LocNum")->AsString.ToInt()==locationnumII)
      FormMain->TreeView1->Items->AddChild(sub1nodeII,Form2->Table1->FieldByName("Name")->AsString);
      Form2->Table1->Next();
      }
}

//---------------------------------------------------------------------------
 void createTreeII() //function start
{
for(int i=0;i<256;i++) {locnumArrII[i]=0;locnumArr2II[i]=0;}

 FormMain->Memo3->Lines->LoadFromFile(rootnameII);
 rootII=FormMain->Memo3->Text;


 rootnodeII=FormMain->TreeView1->Items->AddChild(NULL,rootII);
 if(Form2->Table1->RecordCount!=0)
 //if start
 {Form2->Table1->First();
  locnumII=Form2->Table1->FieldByName("LocNum")->AsString.ToInt();
  int ArrNumII=Form2->Table1->RecordCount;
  for(int i=0;i<Form2->Table1->RecordCount;i++)//for start
  {locnumArrII[i]=Form2->Table1->FieldByName("LocNum")->AsString.ToInt();
   Form2->Table1->Next();
   if(Form2->Table1->Eof) break;
  }         //for end
  int numoflocnumII=0,numII=0;
  for(int i=0;i<ArrNumII;i++) //for i start
   {if(locnumArrII[i]==0) continue;
   for(int j=i+1;j<ArrNumII;j++) //for j start
   {if(locnumArrII[i]==locnumArrII[j]) {locnumArrII[j]=0;numoflocnumII++; }
   }    //for j end
   }//for i end
  for(int j=0;j<ArrNumII;j++) //for i end
   {if(locnumArrII[j]==0) continue;
   locnumArr2II[numII]=locnumArrII[j];    //locnumArr2 express LocNum no repeat
   numII++;}

  int numofnozII=0;
  while(locnumArr2II[numofnozII]!=0)
   {numofnozII++;}
  for(int i=0;i<numofnozII;i++)
    FormMain->TreeView1->Items->AddChild(rootnodeII,getlocnameII(locnumArr2II[i]));

  rootnode2II=FormMain->TreeView1->Items->GetFirstNode();
  sub1nodeII=rootnode2II->getFirstChild();
  for(int k=0;k<numofnozII;k++)
    {
   createsubnodeII();
  sub1nodeII=sub1nodeII->getNextSibling(); }

FormMain->TreeView1->FullExpand();

 }  //if end

}//function end       */
//---------------------------------------------------------------------------
__fastcall TForm2::TForm2(TComponent* Owner)
        : TForm(Owner)
{
}
//---------------------------------------------------------------------------

void __fastcall TForm2::BitBtn2Click(TObject *Sender)
{
 // Form2->Close();
   Edit1->Text="";
 Edit2->Text="";
 ComboBox1->Text="";
 Edit3->Text="";
 Edit3->ReadOnly=true;
 Edit1->SetFocus();
 form2canclose=1;
 Form2->Close();
}
//---------------------------------------------------------------------------
int aaa=0;
void __fastcall TForm2::BitBtn1Click(TObject *Sender)
{
  int addcheck;
 if(Edit1->Text==""||Edit2->Text==""||Edit3->Text==""||ComboBox1->Text=="")
  {ShowMessage("请把资料填写完整!!");form2canclose=0; return;}
// if (ComboBox1->ItemIndex!=0) {ShowMessage("错误的型号或未写型号!!");return;}
//验证地址是否重复
 addcheck=Edit2->Text.ToInt();
 Table1->First();
 for (int addcount=0;addcount<Table1->RecordCount;addcount++)
 {if (addcheck==Table1->FieldByName("Addr")->AsString.ToInt())
   {ShowMessage("该地址已经存在,请重新输入地址!!");Edit2->SelectAll();form2canclose=0; return;}
   Table1->Next();  }
 //check name

 Table1->First();
 for (int i=0;i<Table1->RecordCount;i++)
 {if (Edit1->Text==Table1->FieldByName("Name")->AsString)
   {ShowMessage("该设备名已经存在,请重命名!!");Edit1->SelectAll();form2canclose=0; return;}
   Table1->Next();  }

 if (!Table1->Eof)  Table1->Last();

 if ((Table1->RecordCount!=0)||(Table1->FieldByName("Num")->AsString!=""))
        aaa=Table1->FieldByName("Num")->AsString.ToInt();
 else aaa=0;
 aaa++;
 Table1->Next();
 Table1->Append();
 Table1->FieldByName("Num")->AsString=aaa;
 Table1->FieldByName("Name")->AsString=Edit1->Text;
 Table1->FieldByName("Addr")->AsString=Edit2->Text;
 Table1->FieldByName("LocNum")->AsString=ComboBox1->Text;
 Table1->FieldByName("LocName")->AsString=Edit3->Text;
 Table1->Post();
 Form2->Table1->Refresh();
 FormMain->TableP->Refresh();
 Edit1->Text="";
 Edit2->Text="";
 ComboBox1->Text="";
 Edit3->Text="";
 Edit3->ReadOnly=true;
 Edit1->SetFocus();

 //createTreeII();
 form2canclose=1;
 Form2->Close();


}
//---------------------------------------------------------------------------

void __fastcall TForm2::Form2Close(TObject *Sender, TCloseAction &Action)
{
 
 FormMain->Enabled=true;
 FormMain->TreeView1->Refresh();
 ComboBox1->Enabled=true;
 //createTree();
}
//---------------------------------------------------------------------------

void __fastcall TForm2::Form2Show(TObject *Sender)
{
 FormMain->Enabled=false;
 Edit2->Text="";
 Edit1->SetFocus();
// ComboBox1->Text="";

}
//---------------------------------------------------------------------------

void __fastcall TForm2::FormCreate(TObject *Sender)
{
 String path;
 path=GetCurrentDir();
 Table1->TableName=path+"\\"+"shebei";
 Table1->Active=true;
 for(int i=1;i<=255;i++)
  ComboBox1->Items->Add(IntToStr(i));
}
//---------------------------------------------------------------------------

void __fastcall TForm2::Edit2KeyUp(TObject *Sender, WORD &Key,
      TShiftState Shift)
{
  if((Key>47&&Key<58)||Key==8||(Key>95&&Key<106))
 {if (Edit2->Text==""||Edit2->Text.ToInt()==0) {Edit2->Text='0';Edit2->SelectAll(); return;}
 else if(Edit2->Text.ToInt()>255)
 {ShowMessage("请输入0至255之间的数");Edit2->Text='0';}
 }
 else  {ShowMessage("请输入数字");Edit2->Text="0";}
}
//---------------------------------------------------------------------------

int combosel;
void __fastcall TForm2::ComboBox1Change(TObject *Sender)
{//ShowMessage("OK");
 combosel=ComboBox1->Text.ToIntDef(0);
 if(Table1->RecordCount==0) {Edit3->ReadOnly=false;return;}
 else Edit3->ReadOnly=true;

 Table1->First();
 for (int count=0;count<Table1->RecordCount;count++)
 {if (combosel==Table1->FieldByName("LocNum")->AsString.ToInt())
   {Edit3->Text=Table1->FieldByName("LocName")->AsString;Edit3->ReadOnly=true;return;}
  else {Edit3->ReadOnly=false;Edit3->Clear();}
   Table1->Next();  }
}
//---------------------------------------------------------------------------


void __fastcall TForm2::FormCloseQuery(TObject *Sender, bool &CanClose)
{
if(form2canclose==1) form2canclose=0;
else{CanClose=false;return;}
}
//---------------------------------------------------------------------------

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -