是这样,我想在程序里动态创建一组TcpClient控件,这一组控件具体是多少个不确定,可能是1个,也可能是100个,然后我要为每一个TcpClient控件的事件event赋值,当然所有TCPCLIENT控件我只能用一个已声明的函数去赋值,但是问题来了,我怎么才能通过这个函数来区分当前这次触发事件是属于哪个TCPCLIENT控件的呢?这个问题捆饶我一天了,请高手帮忙,感觉不够分可以再加,说真的.

解决方案 »

  1.   

    看看这个,或许有用
    TNotifyEvent = procedure(Sender: TObject) of object;
      

  2.   

    创建控件数组,每个TCPCLIENT的TAG值不同,到时在事件中根据TCPCLIENT(SENDER).tag来判断就可以了。
      

  3.   

    或者通过控件数组里的对象与当前SENDER来进行比较也可以实现。
      

  4.   

    这个Sender具体应该怎么用法?我用着不好使,一定是哪里用错了,请指教
      

  5.   

    创建控件数组,每个TCPCLIENT的TAG值不同,到时在事件中根据TCPCLIENT(SENDER).tag来判断就可以了。
    楼上说得对,用一个数据管理控件,把Tag的值和数据里的位置相对应。
      

  6.   

    另外TCPCLIENT(SENDER).tag可以自己赋值吗?~
    还是有什么规律?比如....先创建的TCPCLIENT,它的TAG就小,然后依次增大?
      

  7.   

    恩,我现在就是创建的控件数组,那么它的tag值我可以对应这个数组的下标吗?
    就是说比如这样:TcpArr[0].tag := 0; TcpArr[1].tag := 1; TcpArr[2].tag := 2;
      

  8.   

    Sender不是TObject型的吗?用Sender传就OK了吧?
      

  9.   

    当然可以了,tag这个属性你可以随意更改的,只要你记住你如何用就可以了
    另外sender是一个object对象,你要转化为tcpclient对象才可以用,如TCPCLIENT(SENDER)