本文整理自网络,侵删。
unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, OleCtrls, MSCommLib_TLB; type TForm1 = class(TForm) MSComm1: TMSComm; MSComm2: TMSComm; Button1: TButton; Button2: TButton; procedure Button2Click(Sender: TObject); procedure FormClose(Sender: TObject; var Action: TCloseAction); procedure Button1Click(Sender: TObject); procedure MSComm1Comm(Sender: TObject); procedure MSComm2Comm(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.Button2Click(Sender: TObject);begin button1.Enabled:=true; if mscomm1.PortOpen then mscomm1.PortOpen:=false; if mscomm2.PortOpen then mscomm2.PortOpen:=false; Button2.Enabled:=false;end; procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);begin if Application.MessageBox('您真的想退出吗?','串口数据处理',mb_okcancel)=idok then begin if mscomm1.PortOpen then mscomm1.PortOpen:=false; if mscomm2.PortOpen then mscomm2.PortOpen:=false; end else action:=canone;end; procedure TForm1.Button1Click(Sender: TObject);begin button1.Enabled:=false; Button2.Enabled:=true; //COM1 MSComm1.CommPort:=1; //默认串口1 MSComm1.InBufferSize:=1024; MSComm1.OutBufferSize:=512; MSComm1.Settings:='19200,n,8,1'; //波特率为19200 if not MSComm1.PortOpen then MSComm1.PortOpen:=true; //打开串口 MSComm1.InBufferCount:=0; //滑空接收缓冲区 MSComm1.OutBufferCount:= 0; //清空发送缓冲区 MSComm1.RThreshold:=1; MSComm1.InputLen:=0; //COM2 MSComm2.CommPort:=2; //默认串口2 MSComm2.InBufferSize:=1024; MSComm2.OutBufferSize:=512; MSComm2.Settings:='19200,n,8,1'; //波特率为19200 if not MSComm2.PortOpen then MSComm2.PortOpen:=true; //打开串口 MSComm2.InBufferCount:=0; //滑空接收缓冲区 MSComm2.OutBufferCount:= 0; //清空发送缓冲区 MSComm2.RThreshold:=1; MSComm2.InputLen:=0; } //发送字符数据时注意必须用回车符结束 end; procedure TForm1.MSComm1Comm(Sender: TObject);var Buffer:string;begin Case MSComm1.CommEvent of 2: //comEvReceive 2 接收事件 begin Buffer := MSComm1.Input; MSComm2.Output:=Buffer; Buffer:=''; end end; end; procedure TForm1.MSComm2Comm(Sender: TObject);var Buffer:string;begin Case MSComm2.CommEvent of 2: //comEvReceive 2 接收事件 begin Buffer := MSComm2.Input; MSComm1.Output:=Buffer; Buffer:=''; end end;end; end.
相关阅读 >>
Delphi 10 seattle android应用程序使用toast
Delphi将n个相同字符提取到左边,m个相同字符提取到右边
更多相关阅读请进入《Delphi》频道 >>