?? unit1.cpp
字號:
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma link "MSCommLib_OCX"
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
if(MSComm1->PortOpen)
{
Button1->Enabled=false;
Button2->Enabled=true;
Button3->Enabled=true;
Button4->Enabled=true;
Shape1->Brush->Color=clGreen;
}
else
{
Button2->Enabled=true;
Button2->Enabled=false;
Button3->Enabled=false;
Button4->Enabled=false;
Shape1->Brush->Color=clRed;
}
}
//---------------------------------------------------------------------------
//打開串口
void __fastcall TForm1::Button1Click(TObject *Sender)
{
if(!MSComm1->PortOpen)
{
MSComm1->CommPort=StrToInt(ComboBox1->Text); //選擇串口號1
MSComm1->Settings=ComboBox2->Text+",n,8,1"; //設(shè)置串口的屬性波特率、奇偶校驗(yàn)、數(shù)據(jù)位和停止位。
MSComm1->InputMode=0; //設(shè)置傳入數(shù)據(jù)的格式,0表示文本形式
MSComm1->PortOpen=true; //打開串口
Button1->Enabled=false;
Button2->Enabled=true;
Button3->Enabled=true;
Button4->Enabled=true;
Shape1->Brush->Color=clGreen;
MSComm1->OutBufferCount = 0;
MSComm1->InBufferCount = 0;
}
else
ShowMessage("串口打開失敗!");
}
//---------------------------------------------------------------------------
//關(guān)閉串口
void __fastcall TForm1::Button2Click(TObject *Sender)
{
if(MSComm1->PortOpen)
{
MSComm1->PortOpen=false;
Button1->Enabled=true;
Button2->Enabled=false;
Button3->Enabled=false;
Button4->Enabled=false;
Shape1->Brush->Color=clRed;
}
else
{
Button1->Enabled=false;
Button2->Enabled=true;
Shape1->Brush->Color=clRed;
}
}
//---------------------------------------------------------------------------
//發(fā)送數(shù)據(jù)
void __fastcall TForm1::Button3Click(TObject *Sender)
{
if (!MSComm1->PortOpen)
{
ShowMessage("串口未打開!");
return;
}
buff = Memo1->Text;
MSComm1->Output = buff;
}
//---------------------------------------------------------------------------
//保存數(shù)據(jù)
void __fastcall TForm1::Button4Click(TObject *Sender)
{
AnsiString filename1;
SaveDialog1->Filter="Doc files(*.doc)|*.doc|Text files (*.txt)|*.txt";//文件類型過濾器
SaveDialog1->FilterIndex=2;//默認(rèn)第2個過濾器
if(SaveDialog1->Execute())
{
filename1=SaveDialog1->FileName;
Memo2->Lines->SaveToFile(filename1);//把收到的數(shù)據(jù)保存在文件filename1中
}
}
//---------------------------------------------------------------------------
void __fastcall TForm1::MSComm1Comm(TObject *Sender) //事件驅(qū)動方式
{
if(MSComm1->CommEvent == comEvReceive)
{
if(MSComm1->InBufferCount) //如果輸入緩沖區(qū)不為空
{
buff = MSComm1->Input;
Memo2->Text = Memo2->Text+ buff;
}
}
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button5Click(TObject *Sender)
{
Close();
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button7Click(TObject *Sender)
{
MSComm1->OutBufferCount = 0;
buff = "";
Memo1->Text = "";
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button8Click(TObject *Sender)
{
MSComm1->InBufferCount = 0;
buff = "";
Memo2->Text = "";
}
//---------------------------------------------------------------------------
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -