【delphi开源代码栏目提醒】:网学会员鉴于大家对delphi开源代码十分关注,论文会员在此为大家搜集整理了“frm_comms.pas”一文,供大家参考学习
unit frm_comms;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, OleCtrls, MSCommLib_TLB, ComCtrls, XPMan;
const
ComEvFrame = 1004; //硬件检测到帧错误 。
ComEvTxFull = 1010; //发送缓冲区溢出。
ComEvRxParity = 1009; //接收缓冲区溢出。
ComEvSend = 1; //发送缓冲区的内容少于SThreshold指定的值。
ComEvReceive = 2; //接收缓冲区内字符数达到RThreshold指定的值。
type
TFrmComms = class(TForm)
Comms: TMSComm;
GroupBox1: TGroupBox;
MmMessage: TMemo;
BtnOpenCom: TButton;
BtnCloseCom: TButton;
SBCom: TStatusBar;
BtnSend: TButton;
BtnClose: TButton;
CBxCOM: TComboBox;
Label1: TLabel;
procedure BtnOpenComClick(Sender: TObject);
procedure CommsComm(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure BtnCloseComClick(Sender: TObject);
procedure BtnSendClick(Sender: TObject);
procedure BtnCloseClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
FrmComms: TFrmComms;
implementation
{$R *.dfm}
procedure TFrmComms.BtnOpenComClick(Sender: TObject);
begin
try
Comms.CommPort:=CBxCOM.ItemIndex+1;
Comms.PortOpen :=true; // 打开串口
Comms.DTREnable :=true;
Comms.RTSEnable :=true;
CBxCom.Enabled:=false;
SbCom.Panels[0].Text:='端口开启';
Except
Showmessage('端口已经打开!');
end;
end;
procedure TFrmComms.CommsComm(Sender: TObject);
var
recstr:Olevariant;
begin
case comms.CommEvent of
ComEvReceive:
begin
recstr := Comms.Input;
MmMessage.text := MmMessage.Text+recstr;
sbCom.Panels[1].Text:='接收成功!';
end;
ComEvRxParity:
begin
sbCom.Panels[1].Text:='接收缓冲区溢出!';
end;
ComEvFrame:
begin
sbCom.Panels[1].Text:='硬件检测到帧错误!';
end;
ComEvTxFull:
begin
sbCom.Panels[1].Text:='发送缓冲区溢出!';
end;
end;
end;
procedure TFrmComms.FormCreate(Sender: TObject);
begin
Comms.InBufferCount :=0;
Comms.InputLen :=0;
Comms.RThreshold :=1;
end;
procedure TFrmComms.BtnCloseComClick(Sender: TObject);
begin
try
Comms.PortOpen :=false; // 关闭串口
Comms.DTREnable :=false;
Comms.RTSEnable :=false;
CBxCom.Enabled:=true;
SbCom.Panels[0].Text:='端口关闭';
except
showmessage('没有开启的端口!');
end;
end;
procedure TFrmComms.BtnSendClick(Sender: TObject);
begin
Comms.Output:=MmMessage.Text;
end;
procedure TFrmComms.BtnCloseClick(Sender: TObject);
begin
Close;
end;
end.