Delphi XE 中的 VaComm

Posted

技术标签:

【中文标题】Delphi XE 中的 VaComm【英文标题】:VaComm in Delphi XE 【发布时间】:2015-09-09 15:08:05 【问题描述】:

我想在我的 Delphi 程序中使用 Comport,我使用 como 发送数据效果很好,但问题在于接收数据。当它接收到数据时,系统应该调用过程 VaComm1RxChar,但它没有。这个过程永远不会运行。但即使我通过函数 VaComm1.ReadBufUsed 检查缓冲区中是否有一些字符,它也会返回一个值,所以一定有一些接收到的数据。

感谢您的帮助。

这是我的代码,它只包含两个:

procedure TForm2.VaComm1RxChar(Sender: TObject; Count: Integer);
var text: string;
begin
   text:=Vacomm1.ReadText;
   Memo1.Lines.Add(text);
   ShowMessage('Some data received!');
end;

procedure TForm2.Button1Click(Sender: TObject);

begin

   Vacomm1.WriteText('Hello');
   Memo1.Lines.Add('Hello');
   sleep(200);
end;

【问题讨论】:

几年前我在 com 上使用串行接口。我认为,没有推送机制。那时我不得不在超时的情况下轮询数据。 【参考方案1】:

您确定收到了一些数据吗?您是否使用类似 Windows 终端的程序检查了正确的数据流?

端口打开了吗? 检查 Vacomm1.OnRXChar 事件属性是否与您的 VaComm1RxChar 方法链接 检查ceRxChar 是否包含在MonitorEvents 属性中

【讨论】:

MonitorEvents 属性可能缺少 ceRxChar 位。 是的,当我点击对象 VaComm1 时,我在设置中看到 ceRxChar 被选中。 谢谢,该事件已在属性中检查,但问题是它没有与 VaComm1RxChar 链接.. 已解决

以上是关于Delphi XE 中的 VaComm的主要内容,如果未能解决你的问题,请参考以下文章

Delphi XE 中的多线程有啥新功能?

Delphi XE2:跳到 CHM 中的锚点?

delphi xe2实现.net中的wcf并支持回调

如何使用Delphi XE2覆盖WSDL中的服务名称?

Delphi XE2 中 MessageDlg 问题

iOS中的Delphi XE6链接C代码