首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Delphi TurboPower异步专业数据分组访问冲突…

Delphi TurboPower异步专业数据分组访问冲突…
EN

Stack Overflow用户
提问于 2022-10-22 16:34:45
回答 1查看 123关注 0票数 0

我使用windows 7、64位SP1和TP异步V4.07,并有以下问题:我有两个Com端口,Com11和Com18。我在表单中添加了以下组件:

我在ApdComPort2 (Com18)上打开一个Com端口,它工作正常,没有问题。ApdDataPacket2检测数据包终止符,所显示的结果就是所期望的结果。Com11和Com18都工作得很好。现在,如果我使用Com11打开另一个Com端口( ApdComPort1 ),则会出现访问冲突:

在AdPacket模块中生成错误的代码如下:

代码语言:javascript
复制
procedure TApdDataPacketManager.EnablePackets;
var
  i : integer;
begin
  for i := 0 to pred(PacketList.Count) do
    with TApdDataPacket(PacketList[i]) do
      if Enabled then
        Enable;
end;

在遍历列表时,PacketList.Count似乎是问题所在,但我无法理解原因:

请注意,ApdComPort2对Com11和Com18都没有问题。如果我删除了Apd2组件,那么Apd1将按预期工作。当我试图同时使用两个(或更多) Apd组件时,问题就出现了。是否有人有建议或可以推荐一个组件同时使用多个串行口?

EN

回答 1

Stack Overflow用户

发布于 2022-10-22 23:39:23

关于Turbo异步专业组件的一些注意事项:

在使用异步组件时,如何将组件添加到表单中是非常重要的。如果您没有按照正确的顺序和正确的方式执行,那么如果您使用多个串行端口,它将无法工作。你实际上会得到一个访问违规。例如,如果在下面添加组件,就必须这样做:

向表单添加一个ApdComPort2

  • Add ApdComPort,将该组件复制并粘贴到表单中,它将成为ApdComPort2

  • Add one ApdDataPacket组件到表单中,它将成为ApdDataPacket1

  • Now 复制并粘贴到表单中,该组件将成为表单的ApdDataPacket2

  • Add one ApdSLController组件,它将成为ApdSLController1

  • Now 复制和粘贴ApdDataPacket该组件到表单,它将成为ApdSLController2

如前所述,在执行此操作时,它可以在ApdDatapacket中使用两个串行端口。现在我没有任何非法进入的机会。我已经测试了多达4个端口,它也工作。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74165284

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档