高手请教在DELPHI8中怎样使用串口通讯时?(50分)

  • 主题发起人 主题发起人 江上游者
  • 开始时间 开始时间

江上游者

Unregistered / Unconfirmed
GUEST, unregistred user!
我在网搜了一下,有使用MSCOMMHE和SPCOMM控件,这两个控件哪一个在DELPHI8中好使用,
如何激活控件.
 
建议你使用spcomm,这个是delphi写的,有源代码。可以很好的集成到你的软件。
mscomm发布时要同时发布ocx。
 
如何激活在DELPHI中SPCOMM控件
 
直接安装啊。
 
自己用API写就可以啦
 
用 COMPORT 3.10 更好.如需要我可以发给你.
 
在VB6.0中只要在控件找到MSCOM控件,在控件名称前面打上勾,就可以激活。
在DELPHI中MSCOMM或SPCOMM控件的激活方式,具体一点。


谢谢
 
在DELPHI中使用MSCOMM或SPCOMM控件的激活方式,应当使用DELPHI自己带的比较好,请高手
指点一下。
 
不明白你说的激活是什么意思 , 下面是我使用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的数据的接收事件的触发,是接收到一段连续数据后触发的。由于也是新手,希望高人指点
 
1.SPComm:File-->Open-->SP_Comm.dpk,然后在打开的界面中Install,关闭并保存,别忘记了在Tools-->Environment Options ...-->Library中的第一个按钮中加上SP_Comm.dpk所在目录
2.MSComm:Component-->Import ActiveX Control ...-->界面中Add,将MSComm32.OCX加入并Install,最好该控件放在System32下
 
谢谢高手。
 
后退
顶部