不明白你说的激活是什么意思 , 下面是我使用spcom控件的一段程序
procedure TForm1.Open_com;
begin
self.com_mycom.CommName:= comset.commname; //端口号 String
self.com_mycom.StartComm;
self.com_mycom.BaudRate:= comset.baudrate; //波特率 Cardinal
self.com_mycom.ByteSize:= comset.bytesize; //数据位 Tbitsize
self.com_mycom.StopBits:= comset.stopbits; //停止位 Tstopbit
self.com_mycom.Parity := comset.parity; //校验位 Tparity
end;
其中, comset 是我定义的一个记录类型
com_mycom 是spcom控件的名称
使用的时候,给自定义的记录类型赋值完毕后,调用此函数就可以了。另外,spcom似乎
需要定义如下接收数据的函数,看过的大多数介绍都是这样的, 如下:
procedure TForm1.com_mycomReceiveData(Sender: TObject; Buffer: Pointer;
BufferLength: Word);
var
s:string;
hour,min,sec,msec:word;
begin
SetLength(S, BufferLength);
Move(Buffer^, PChar(S)^, BufferLength);
com_rsvdata.hadGetData:=true;
com_rsvdata.Data:=s;
decodetime(now,hour,min,sec,msec);
s:= s + ' [[[ '+ inttostr(hour)+'时'+
inttostr(min)+'分'+
inttostr(sec)+'秒'+
inttostr(msec)+'毫秒'+' ]]] ';
mo_rsv.Lines.Add(s);
Mo_rsv.Invalidate;
end;
其中 SetLength(S, BufferLength);
Move(Buffer^, PChar(S)^, BufferLength); 两行是我见过的介绍spcom使用中都用到的句子, 就是把接收到的数据存储在 S 字符串中, 其他的是我自己函数中用到了,可以忽略。
个人理解: spcom的数据的接收事件的触发,是接收到一段连续数据后触发的。由于也是新手,希望高人指点