比较迷惑,最近在线称中使用回调函数.但是发现有点迷惑.回调函数使的线称有了另一个入口.无端的改变了一些线称的变量,弄的脑袋有点大?有明白的可以给讲讲吗??

解决方案 »

  1.   

    谢谢楼上的关注.
    我大概的描述下我的思路:程序有主Form,主Form从通讯队列取出包,发送给需要这些包的子Form,子Form收到包内容后在线称中处理收到的消息.主Form和子Form之间的通讯数据包通过回调函数机制实现,如果某个子Form处理了通讯数据包,则标志变量通知主Form不要在发这个数据包给其它的子Form或者其它处理,否则发送.现在的问题是发送给某个子Form的数据包不属于该Form,主Form也把数据包处理之后,将子Form的处理标志不知道怎么搞的修改了,弄的本来不属于某个子Form的数据,它也处理.显得比较混乱.
    以上是基本的思路,现在弄晕了被!!!!
      

  2.   

    哦,对了.主Form和子Form之间的回调是自定义消息来完成的.
      

  3.   

    是否属于此子form你是怎么判断的?是否这里弄错了?if 信息属于某个子form then  
    for i:= 0 to Screen.FormCount-1 do
          if (Screen.Forms[i] is T你的子form) then
           begin
           处理
           end;
      

  4.   

    >>> 主Form和子Form之间的回调是自定义消息来完成的.不明白,是回调函数还是消息啊?
    另外你用到的标志变量存在被多线程访问的情况吗?