📄 unit_connect.~cpp
字号:
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "Unit_Connect.h"
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm_Connect *Form_Connect;
//---------------------------------------------------------------------------
__fastcall TForm_Connect::TForm_Connect(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm_Connect::Button_ConnectClick(TObject *Sender)
{
Animate1->Active = true;
Button_Connect->Enabled = false;
String Temp;
Temp = "◆打开端口: COM" + String(Form1->COMM.Comm_No);
Memo1->Lines->Add(Temp);
char *CommNo;
Temp = "COM" + IntToStr(Form1->COMM.Comm_No);
CommNo = Temp.c_str();
Form1->hComm = CreateFile(CommNo,GENERIC_READ|GENERIC_WRITE,0,NULL,
OPEN_EXISTING,0,0);
if(Form1->hComm == INVALID_HANDLE_VALUE){
Memo1->Lines->Add(" 失败! (端口可能被占用.)");
Animate1->Active = false;
CloseHandle(Form1->hComm);
return;
}/*CloseHandle(hComm);等待程序结束关闭*/
else {
Memo1->Lines->Add(" 成功!");
}
DCB dcb;
Memo1->Lines->Add("◆设置通讯参数");
dcb.BaudRate = Form1->COMM.Comm_BaudRate;
dcb.ByteSize = Form1->COMM.Comm_ByteSize;
dcb.Parity = Form1->COMM.Comm_Parity;
dcb.StopBits = Form1->COMM.Comm_StopBits;
Memo1->Lines->Add(" 波特率:" + String(Form1->COMM.Comm_BaudRate));
Memo1->Lines->Add(" 数据位:" + String(Form1->COMM.Comm_ByteSize));
if(Form1->COMM.Comm_Parity == 0 ) Temp = " (无校验)";
if(Form1->COMM.Comm_Parity == 1 ) Temp = " (奇校验)";
if(Form1->COMM.Comm_Parity == 2 ) Temp = " (偶校验)";
Temp=String(Form1->COMM.Comm_Parity) + Temp;
Memo1->Lines->Add(" 校验位:" + Temp);
if(Form1->COMM.Comm_StopBits == 0) Temp = " (1位)";
if(Form1->COMM.Comm_StopBits == 1) Temp = " (1.5位)";
if(Form1->COMM.Comm_StopBits == 2) Temp = " (2位)";
Temp=String(Form1->COMM.Comm_StopBits) + Temp;
Memo1->Lines->Add(" 停止位:" + Temp);
if(!SetCommState(Form1->hComm,&dcb)){
Memo1->Lines->Add(" 通讯参数设置失败! (重新设定.)");
Animate1->Active = false;
CloseHandle(Form1->hComm);
return;
}
Memo1->Lines->Add(" 通讯参数设置成功!");
Memo1->Lines->Add("◆连接设备");
Sleep(8000);
{
Memo1->Lines->Add(" 连接成功,可以进行检测.");
Form1->Comm_OK = true;
Animate1->Active = false;
Form1->StatusBar1->Panels->Items[1]->Text = "■ 联机";
}
}
//---------------------------------------------------------------------------
void __fastcall TForm_Connect::Button_CancelClick(TObject *Sender)
{
Close();
}
//---------------------------------------------------------------------------
void __fastcall TForm_Connect::FormActivate(TObject *Sender)
{
if(Form1->Comm_OK){
Button_Connect->Enabled = false;
}
else {
Button_Connect->Enabled = true;
Memo1->Lines->Clear();
Memo1->Lines->Add("◆确认计算机与设备连接妥当.");
}
}
//---------------------------------------------------------------------------
void __fastcall TForm_Connect::FormClose(TObject *Sender,
TCloseAction &Action)
{
if(Animate1->Active) Animate1->Active = false;
Button_Connect->Enabled = true;
}
//---------------------------------------------------------------------------
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -