📄 unit2.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 + -