?? ucomm.~pas
字號:
unit ucomm;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, SPComm, StdCtrls, Menus, DdeMan, ActnList, ExtCtrls, Buttons;
type
TFComm = class(TForm)
Comm1: TComm;
Memo1: TMemo;
Button1: TButton;
Button2: TButton;
Label1: TLabel;
MainMenu1: TMainMenu;
N1: TMenuItem;
N2: TMenuItem;
N3: TMenuItem;
N4: TMenuItem;
ComboBox1: TComboBox;
Label2: TLabel;
ComboBox2: TComboBox;
Label3: TLabel;
ComboBox3: TComboBox;
ComboBox4: TComboBox;
ComboBox5: TComboBox;
Label4: TLabel;
Label5: TLabel;
Label6: TLabel;
procedure FormShow(Sender: TObject);
procedure FormClose(Sender:TObject;var Action:TCloseAction);
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
FComm: TFComm;
viewstring:string;
i:integer;
rbuf,sbuf:array[1..16]of byte;
implementation
{$R *.dfm}
//自定義發(fā)送數(shù)據(jù)過程
procedure senddata;
var
i:integer;
commflg:boolean;
begin
viewstring:='';
commflg:=True;
for i:=1 to 6 do
begin
if not fcomm.Comm1.WriteCommData(@sbuf[i],1)then
begin
commflg:=false;
break;
end;
//發(fā)送時字節(jié)間的延時
sleep(2);
viewstring:=viewstring+IntToHex(sbuf[i],2)+'';
end;
viewstring:='發(fā)送'+viewstring;
fcomm.Memo1.Lines.Add(viewstring);
//fcomm.Memo1.Lines.Add('');
if not commflg then
MessageDlg('發(fā)送成功!',mtInformation,[mbyes],0);
end;
//打開串口
procedure TFComm.FormShow(Sender:TObject);
begin
comm1.StartComm; //創(chuàng)建窗體時,將comm1控件打開
end;
//關(guān)閉串口
procedure TFComm.FormClose(Sender:TObject;var Action:TCloseAction);
begin
comm1.StopComm;//關(guān)閉窗體時,將comm1控件關(guān)閉
end;
//發(fā)送按鈕的單擊事件
procedure TFComm.Button1Click(Sender: TObject);
begin
sbuf[1]:=1;//幀頭
sbuf[2]:=2;//命令號
sbuf[3]:=3;
sbuf[4]:=4;
sbuf[5]:=5;
sbuf[6]:=6; //幀
senddata; //調(diào)用發(fā)送函數(shù)
end;
//接收過程
procedure TFComm.Button2Click(Sender: TObject);
var
StrReceive:string;
Buffer:Pointer;
BufferLength:Word;
begin
SetLength(StrReceive,BufferLength);
Move(Buffer^,PChar(StrReceive)^,BufferLength);
//
Memo1.Lines.Add(StrReceive);
Memo1.Invalidate;
end;
end.
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -