📄 unit1.pas
字号:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, Buttons, TComm1;
type
TForm1 = class(TForm)
Label1: TLabel;
Label2: TLabel;
mReceive: TMemo;
BitBtn1: TBitBtn;
BitBtn2: TBitBtn;
Comm1: TComm;
mSend: TMemo;
procedure BitBtn1Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure BitBtn2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
Procedure TimeDelay(DT:DWORD);//延迟函数
implementation
{$R *.DFM}
procedure TForm1.BitBtn1Click(Sender: TObject);
var
//传送及接收要用的动态数组声明
ByteSend:array of Byte;
ByteReceive:array of Byte;
Count,i:DWORD;
PT:PByte; //字节指针
begin
//指定欲传送的字节
SetLength(ByteSend,mSend.Lines.Count);
for i:=0 to mSend.Lines.Count-1 do
ByteSend[i]:=StrToInt(mSend.Lines[i]);
Comm1.OutputByte(ByteSend);//传送出去
TimeDelay(100); //延迟500毫秒
//接收字节数据,包括数目及地址
Count:=Comm1.ReadInputByte(PT);
//接收的数据指定给接收数组
SetLength(ByteReceive,Count);
for i:=0 to Count-1 do
begin
ByteReceive[i]:=PT^;
//结果显示在Memo组件中(Append方式)
mReceive.Text:=mReceive.Text + IntToStr(ByteReceive[i]) + Chr(13) + Chr(10);
Inc(PT);
end;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
//打开通信端口
Comm1.PortOpen:=True;
end;
procedure TForm1.BitBtn2Click(Sender: TObject);
begin
//结束程序
Close;
end;
//以下是延迟函数,单位毫秒
Procedure TimeDelay(DT:DWORD);
var
TT:DWORD;
begin
//取得现在的Tick值
TT:=GetTickCount();
//计算Tick差值是否超过设置值
while GetTickCount()-TT<DT do
Application.ProcessMessages; //释放控制权
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -