📄 unit1.pas
字号:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, ExtCtrls, TComm1;
type
TForm1 = class(TForm)
Memo1: TMemo;
Memo2: TMemo;
Button1: TButton;
Button2: TButton;
Button3: TButton;
Edit1: TEdit;
Check1: TCheckBox;
Label1: TLabel;
Timer1: TTimer;
Button4: TButton;
Shape1: TShape;
Shape2: TShape;
Shape3: TShape;
Shape4: TShape;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Button5: TButton;
Button6: TButton;
Label5: TLabel;
Button7: TButton;
Comm1: TComm;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure Button4Click(Sender: TObject);
procedure Timer1Timer(Sender: TObject);
procedure Button5Click(Sender: TObject);
procedure Button6Click(Sender: TObject);
procedure Comm1ModemStateChange(Sender: TObject; ModemEvent: Cardinal);
procedure Comm1ReceiveData(Sender: TObject);
procedure Button7Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
procedure TForm1.Button1Click(Sender: TObject);
begin
Comm1.PortOpen :=True;
end;
procedure TForm1.Button2Click(Sender: TObject);
var
TmpStr:String;
StrLen:Word;
ByteData:array of Byte;
i:Integer;
begin
if Check1.Checked then
begin
SetLength(ByteData,5);
for i:=0 to 4 do
ByteData[i]:=55+i*20;
Comm1.OutputByte(ByteData);
exit;
end;
TmpStr:=memo1.Text + chr(13);
Comm1.OutputString(TmpStr);
end;
procedure TForm1.Button3Click(Sender: TObject);
var
tmpArray:array[0..4096] of Byte;
PT,P1:PByte;
ArraySize,i: DWORD;
Count:DWORD;
tmpStr:string;
pStr:PChar;
begin
Comm1.InputLen := StrToInt(Edit1.Text);
if Check1.Checked then
begin
Memo2.Text:='';
tmpStr:= Comm1.Input;
pStr:=PChar(tmpStr);
Dec(PStr);
for i:=0 to Length(tmpStr)-1 do
begin
inc(PStr);
tmpArray[i]:=Byte(PSTR^);
Memo2.Text :=Memo2.Text + IntToStr(Ord(tmpArray[i])) + chr(13) + chr(10);
end;
exit;
{ Count:=Comm1.ReadInputByte(PT);
//if PT=0 then exit;
Dec(PT);
for i:=0 to Count do
begin
inc(PT);
tmpArray[i]:=PT^;
Memo2.Text :=Memo2.Text + IntToStr(Ord(tmpArray[i])) + chr(13) + chr(10);
end;
exit;
}
end;
Memo2.Text :=Comm1.Input;
end;
procedure TForm1.Button4Click(Sender: TObject);
begin
Comm1.PortOpen :=False;
end;
procedure TForm1.Timer1Timer(Sender: TObject);
begin
if Comm1.PortOpen then
begin
if Comm1.CDHolding then
Shape1.Brush.Color:=clRED
else
Shape1.Brush.Color:=clWhite;
if Comm1.DSRHolding then
Shape2.Brush.Color:=clRED
else
Shape2.Brush.Color:=clWhite;
if Comm1.RIHolding then
Shape3.Brush.Color:=clRED
else
Shape3.Brush.Color:=clWhite;
if Comm1.CTSHolding then
Shape4.Brush.Color:=clRED
else
Shape4.Brush.Color:=clWhite;
end;
end;
procedure TForm1.Button5Click(Sender: TObject);
begin
Comm1.DTREnabled :=not Comm1.DTREnabled ;
end;
procedure TForm1.Button6Click(Sender: TObject);
begin
Comm1.RTSEnabled := not Comm1.RTSEnabled ;
end;
procedure TForm1.Comm1ModemStateChange(Sender: TObject;
ModemEvent: Cardinal);
begin
Label5.Caption:='Modem='+ IntToStr(ModemEvent);
end;
procedure TForm1.Comm1ReceiveData(Sender: TObject);
begin
Memo2.Text :=Memo2.Text + Comm1.Input;
end;
procedure TForm1.Button7Click(Sender: TObject);
begin
Close;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -